I'm using this code to read in IR remote and check the decoded data against an array of values, but as it presently stands, it is returning 0 every time.
Anybody see anything obvious?
Thanks.
#include <IRremote.h>
const int RECV_PIN = 10;
IRrecv irrecv(RECV_PIN);
decode_results results;
unsigned long irCodes[17] =
{0xFFA25D, 0xFF629D, 0xFFE21D, 0xFF22DD, 0xFF02FD, 0xFFC23D, 0xFFE01F, 0xFFA857, 0xFF906F, 0xFF9867, 0xFF6897, 0xFFB04F, 0xFF18E7, 0xFF4AB5, 0xFF10EF, 0xFF5AA5, 0xFF38C7};
unsigned long receivedCode;
unsigned long currentCode;
void setup(){
Serial.begin(115200);
irrecv.enableIRIn();
irrecv.blink13(true);
}
int checkCode(unsigned long irCode){
for (int i = 0; i < 16; i++) {
if(irCodes[i]==irCode, HEX){
return i;
}
else {
return 0;
}
}
}
void loop(){
if (irrecv.decode(&results)){
receivedCode = results.value;
irrecv.resume();
Serial.println(checkCode(receivedCode));
//if(receivedCode != 0xFFFFFFFF){
// currentCode = receivedCode;
//Serial.println(currentCode, HEX);
//}
//if(receivedCode == 0xFFFFFFFF){
// Serial.println(currentCode, HEX);
}
}