#include <IRremote.h>
#define LED1 8
#define RELAY 9
const long RECV_PIN = 7;
IRrecv irrecv(RECV_PIN);
unsigned long nowTime;
unsigned long considerTime;
void setup(){
Serial.begin(9600);
IrReceiver.begin(RECV_PIN, ENABLE_LED_FEEDBACK);
pinMode(LED1, OUTPUT);
pinMode(RELAY, OUTPUT);
}
void loop(){
nowTime = millis();
if(IrReceiver.decode()){
String irNum = String(IrReceiver.decodedIRData.command,HEX);
Serial.println(irNum);
Serial.println(nowTime);
if(irNum=="c"){
Serial.println("You pressed 1");
considerTime=0;
onlight();
}else if(irNum=="18"){
Serial.println("You pressed 2");
offlight();
}else if(irNum=="5e"){
Serial.println("You pressed 3");
considerTime=nowTime + 10000;
onlight();
}else if(irNum=="8"){
Serial.println("You pressed 4");
}else{
Serial.println("You pressed other key");
}
IrReceiver.resume();
}
if(considerTime==nowTime){
digitalWrite(LED1, LOW);
digitalWrite(RELAY, HIGH);
}
}
void offlight(){
digitalWrite(LED1, LOW);
digitalWrite(RELAY, HIGH);
}
void onlight(){
digitalWrite(LED1, HIGH);
digitalWrite(RELAY, LOW);
}