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

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

//Arduino Nano - YS-IRTM tolmács program távirá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