minha intenção é quando aperto o botão 1 do controle remoto, (liga/desliga o relé), a mesma coisa para o botão 2, agora quando pressionado o botão 3, que ele envie infravermelho, por exemplo de aumentar o volume da tv
quando pressiono 1 e 2, tudo funciona normalmente(liga/desliga o relé), porem quando pressiono botão 3, ele envia apenas 1 vez o codigo infravermelho, e quando pressiono novamente o botão 3 não acontece nada, e inclusive quando volto a pressionar o botão 1 e 2, eles passam a não funcionar (ligar/desligar o relé)
#include <IRremote.h>
int RECV_PIN = 11;
const int Rele1 = 10;
const int Rele2 = 7;
int flag0, flag1, flag3;
IRsend irsend;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
pinMode(Rele1,OUTPUT);
pinMode(Rele2,OUTPUT);
irrecv.enableIRIn(); // Start the receiver
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
if(results.value == 0xFF6897){ //botao 1
if(flag0 == 0) {
flag0 = 1;
digitalWrite(Rele1, HIGH);
}else{
flag0 = 0;
digitalWrite(Rele1, LOW);
}
}
if(results.value == 0xFF9867){ //botao 2
if(flag1 == 0) {
flag1 = 1;
digitalWrite(Rele2, HIGH);
}else{
flag1 = 0;
digitalWrite(Rele2, LOW);
}
}
if(results.value == 0xFFB04F){ //botao 3
irsend.sendNEC (0x20DF40BF,32);
}
irrecv.resume(); // Receive the next value
}
delay(100);
}