//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;
}
}
}
SoftwareSerial ir_mod(3, 2);
byte command1[5] = {0xA1, 0xF1, 0x06, 0x57, 0x60};
byte command2[5] = {0xA1, 0xF1, 0x06, 0x57, 0x0F};
byte buffer[3];
int bufferIndex = 0;
Serial.begin(9600);
while(!Serial){}
Serial.println("Setup IR Serial");
ir_mod.begin(9600);
while(!ir_mod){}
Serial.println("IR Serial Ready");
}
if (ir_mod.available() > 0) {
// Beolvassuk az aktuális bájtot
incomingByte = ir_mod.read();
if (bufferIndex < 3) {
if (incomingByte==241) bufferIndex=2;
buffer[bufferIndex] = incomingByte;
bufferIndex++;
}
if (bufferIndex == 3) {
Serial.print("Teljes csomag erkezett: ");
for (int i = 0; i < 3; i++) {
Serial.print(buffer[i], HEX);
Serial.print(" ");
}
Serial.println();
// 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");
}
bufferIndex = 0;
buffer[0]=buffer[1]=buffer[2]=0;
}
}
}
Nincsenek megjegyzések:
Megjegyzés küldése