2025. október 27., hétfő

Tolmács program távirányítóhoz

//Arduino Nano - YS-IRTM tolmács program távírányítóhoz

#include <SoftwareSerial.h>

int incomingByte = 0;
SoftwareSerial ir_mod(3, 2);
byte command1[5] = {0xA1, 0xF1, 0x06, 0x57, 0x60};
byte command2[5] = {0xA1, 0xF1, 0x06, 0x57, 0x0F};

// Puffer a beérkező bájtoknak
byte buffer[3];
int bufferIndex = 0;

void setup() {
  Serial.begin(9600);
  while(!Serial){}
  Serial.println("Setup IR Serial");
  ir_mod.begin(9600);
  while(!ir_mod){}
  Serial.println("IR Serial Ready");
}

void loop() {
    if (ir_mod.available() > 0) {
      // Beolvassuk az aktuális bájtot
      incomingByte = ir_mod.read();

      // Hozzáadjuk a pufferhez
      if (bufferIndex < 3) {
        if (incomingByte==241) bufferIndex=2;
        buffer[bufferIndex] = incomingByte;
        bufferIndex++;
      }

      // Ha a puffer tele van (3 bájt beérkezett)
      if (bufferIndex == 3) {
        Serial.print("Teljes csomag erkezett: ");
        for (int i = 0; i < 3; i++) {
          Serial.print(buffer[i], HEX);
          Serial.print(" ");
        }
        Serial.println();

        // Itt dolgozzuk fel a teljes csomagot
        // Például a 3. bájtra reagálunk, ahogy az eredeti kódban
        if (buffer[0] == 6 && buffer[1] == 87 && buffer[2] == 48 ) { // A harmadik bájt, ami 48
          ir_mod.write(command1, 5);
          Serial.println("Elkuldve: command1");
        }
        if (buffer[0] == 6 && buffer[1] == 87 && buffer[2] == 49 ) { // Ha 49 lenne a harmadik bájt
          ir_mod.write(command2, 5);
          Serial.println("Elkuldve: command2");
        }

        // Végül ürítjük a puffert a következő üzenethez
        bufferIndex = 0;
        buffer[0]=buffer[1]=buffer[2]=0;
      }
    }
}

Nincsenek megjegyzések:

Megjegyzés küldése