sábado, 29 de dezembro de 2018





ESPERO AJUDAR OBG 










#include <Psx.h>
#include <SPI.h>
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>

#define dataPin 4
#define cmndPin 3
#define attPin 2
#define clockPin 5

Psx Psx;

byte envio[8];
byte tx_endereco[5] = {0xD0,0xD0,0xD0,0xD0,0xD0};

void setup()
{
Serial.begin(57600);
Psx.setupPins(dataPin, cmndPin, attPin, clockPin, 10);

Mirf.spi = &MirfHardwareSpi;
Mirf.init();
Mirf.payload = 8;
Mirf.config();
}

void loop()
{
Psx.read();

if(Psx.psxID != 0x00)
{
envio[0] = Psx.psxID; // DIGITAL (82) , ANALOGICO (CE)
envio[1] = Psx.psxStatus;
envio[2] = Psx.psxThumbL; // SETAS, SELECT, DIGITAL L
envio[3] = Psx.psxThumbR; // (x,[],/\,O), START, DIGITAL R, (L1,L2,R1,R2)
envio[4] = Psx.psxJoyRX; // EIXO ANALOGICO "X" DO "R"
envio[5] = Psx.psxJoyRY; // EIXO ANALOGICO "Y" DO "R"
envio[6] = Psx.psxJoyLX; // EIXO ANALOGICO "X" DO "L"
envio[7] = Psx.psxJoyLY; // EIXO ANALOGICO "Y" DO "L"

 
      Serial.print("Data 0 ==> ");
      Serial.println(envio[2]);
      Serial.print("Data 1 ==> ");
      Serial.println(envio[3]);

Mirf.setTADDR(tx_endereco);
Mirf.send(envio);
while(Mirf.isSending());
}

delay(50);
}






//receptor//

#include <SPI.h>

#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>


byte entrada[8];

byte rx_endereco[5] = {0xD0,0xD0,0xD0,0xD0,0xD0};

uint32_t lastCommandTime = 0;

uint8_t data1, data2,data3, data4,data5, data6,data7;

void setup()
{
  Serial.begin(57600);

  Mirf.spi = &MirfHardwareSpi;
  Mirf.init();
  Mirf.setRADDR(rx_endereco);
  Mirf.payload = 8;
  Mirf.config();
}

void loop()
{
  if(!Mirf.isSending() && Mirf.dataReady())
  {
    Mirf.getData(entrada);
 
 
    data1 = ~entrada[1];
    data2 = ~entrada[2];
    data3 = ~entrada[3];
    data4 = ~entrada[4];
    data5 = ~entrada[5];
    data6 = ~entrada[6];
    data7 = ~entrada[7];
    /*    data 1
     * 1 = Seta para esquerda / analogico L para esquerda
     * 2 = Seta para baixo / analogico L para baixo
     * 4 = seta para direita / analogico L para direita
     * 8 = seta para cima / analogico L para cima
    */
    /*   data 2
     * 1 = [] / analogico R para esquerda
     * 2 = X / analogico R para baixo
     * 4 = O / analogico R para direita
     * 8 = /\ / analogico R para cima
     * 16 = R1
     * 32 = L1
     * 64 = R2
     * 128 = L2
    */
 
 
    Serial.print("Data 1 ==> ");
    Serial.println(data1);
    Serial.print("Data 2 ==> ");
    Serial.println(data2);
    Serial.print("Data 3 ==> ");
    Serial.println(data3);
    Serial.print("Data 4 ==> ");
    Serial.println(data4);
    Serial.print("Data 5 ==> ");
    Serial.println(data5);
    Serial.print("Data 6 ==> ");
    Serial.println(data6);
    Serial.print("Data 7 ==> ");
    Serial.println(data7);
 
    Mirf.flushRx();
    lastCommandTime = millis();
  }

  if((millis() - lastCommandTime) > 100)
  {
 
    Mirf.flushRx();
    lastCommandTime = millis();
  }
}





Nenhum comentário:

Postar um comentário