#include <IRremote.h>
int RECV_PIN = 11;
int LED1 = 2;
int LED2 = 3;
int LED3 = 4;
int LED4 = 5;
int LED5 = 6;
int LED6 = 7;
bool LEDState[6]{LOW,LOW,LOW,LOW,LOW,LOW};
IRrecv irrecv(RECV_PIN);
decode_results results;
void translateIR()
{
// Takes command based on IR code received
switch (irrecv.decodedIRData.command) {
case 48:
//lcdPrint("num: 1");
digitalWrite(LED1, LEDState[0]=!LEDState[0]);
break;
case 24:
//lcdPrint("num: 2");
digitalWrite(LED2, LEDState[1]=!LEDState[1]);
break;
case 122:
//lcdPrint("num: 3");
digitalWrite(LED3, LEDState[2]=!LEDState[2]);
break;
case 16:
//lcdPrint("num: 4");
digitalWrite(LED4, LEDState[3]=!LEDState[3]);
break;
case 56:
//lcdPrint("num: 5");
digitalWrite(LED5, LEDState[4]=!LEDState[4]);
break;
case 90:
//lcdPrint("num: 6");
digitalWrite(LED6, LEDState[5]=!LEDState[5]);
break;
default:
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
}
}
void setup()
{
pinMode(RECV_PIN, INPUT);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(LED5, OUTPUT);
pinMode(LED6, OUTPUT);
pinMode(13, OUTPUT);
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}
int on = 0;
unsigned long last = millis();
void loop()
{
if (irrecv.decode()) {
translateIR();
irrecv.resume(); // Receive the next value
}
if (irrecv.decode(&results))
{
// If it's been at least 1/4 second since the last
// IR received, toggle the relay
if (millis() - last > 250)
{
on = !on;
//digitalWrite(8, on ? HIGH : LOW);
//digitalWrite(13, on ? HIGH : LOW);
irrecv.resume(); // Receive the next value
}
}
}