Galera, sou novato, mas gostaria da ajuda de vocês, consegui unir dois códigos em um só, entretanto há um erro. O meu objetivo é receber um comando de um controle Infravermelho e enviar um código de um outro controle (estou fazendo um controle universal). Esse sketch está funcionando quase perfeitamente, ele recebe um código do controle e envia outro que eu ja mapeei - sinal Raw - porém ele continua enviando o sinal Raw constantemente e não recebe mais nenhum código do controle, meio que desativou o receptor IR e só deixou o transmissor ligado. Por causa disso, quando eu aperto a tecla (que envia o código = 799723820) o arduino recebe apenas uma vez e fica disparando constantemente o sinal Raw. O que eu gostaria é que ele só enviasse uma vez o codigo Raw e continuasse a receber o sinal do controle.
#include <IRremote.h>
int RECV_PIN = 2;
IRsend irsend;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
// In case the interrupt driver crashes on setup, give a clue
// to the user what's going on.
Serial.println("Enabling IRin");
irrecv.enableIRIn(); // Start the receiver
Serial.println("Enabled IRin");
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, DEC);
irrecv.resume(); // Receive the next value
}
delay(100);
if ( results.value == 799723820){
int khz = 38; // 38kHz carrier frequency for the NEC protocol
unsigned int irSignal[] = {4500,4500, 550,1700, 550,1650, 600,1650, 550,600, 550,550, 550,550, 550,600, 550,550, 550,1700, 550,1700, 550,1700, 500,600, 550,550, 550,550, 550,600, 550,550, 550,1700, 550,1700, 550,1700, 500,600, 550,550, 550,550, 600,550, 550,550, 550,600, 550,550, 550,550, 550,1700, 550,1700, 550,1650, 600,1650, 550,1700, 550};
irsend.sendRaw(irSignal, sizeof(irSignal) / sizeof(irSignal[0]), khz);
delay(500);
}
}