#include <IRremote.h>
#include <EEPROM.h>
#define IR_RECEIVE_PIN 7
int BUZZ= 8;
const int relay2=12;
const int relay3=11;
const int relay4=10;
const int led=6;
int cmd;
void setup() {
Serial.begin(9600);
IrReceiver.begin(IR_RECEIVE_PIN);
pinMode(LED_BUILTIN, OUTPUT);
pinMode(relay2, OUTPUT);
pinMode(relay3, OUTPUT);
pinMode(relay4, OUTPUT);
pinMode(BUZZ, OUTPUT);
pinMode(led, OUTPUT);
//one time initailization for buzzer sound
digitalWrite(BUZZ, HIGH);
delay(1000);
digitalWrite(BUZZ, LOW);
}
void loop() {
if (IrReceiver.decode()) {
delay(200);
IrReceiver.resume();
Serial.println(IrReceiver.decodedIRData.command);
cmd = IrReceiver.decodedIRData.command;
EEPROM.wrire(cmd,0);
if(cmd == 48 || cmd == 24 || cmd == 122 ||cmd == 16 || cmd == 104 )
{
digitalWrite(BUZZ, HIGH);
delay(200);
digitalWrite(BUZZ, LOW);
}
}
static int var = EEPROM.read(0);
switch(var)
{
case 48:
digitalWrite(LED_BUILTIN, HIGH);
digitalWrite(relay2, LOW);
digitalWrite(relay3, LOW);
digitalWrite(relay4, LOW);
digitalWrite(led, LOW);
break;
case 24:
digitalWrite(LED_BUILTIN, LOW);
digitalWrite(relay2, HIGH);
digitalWrite(relay3, LOW);
digitalWrite(relay4, LOW);
digitalWrite(led, LOW);
break;
case 122:
digitalWrite(LED_BUILTIN, LOW);
digitalWrite(relay2, LOW);
digitalWrite(relay3, HIGH);
digitalWrite(relay4, LOW);
digitalWrite(led, LOW);
break;
case 16:
digitalWrite(LED_BUILTIN, LOW);
digitalWrite(relay2, LOW);
digitalWrite(relay3, LOW);
digitalWrite(relay4, HIGH);
digitalWrite(led, LOW);
break;
case 252 :
digitalWrite(LED_BUILTIN, LOW);
digitalWrite(relay2, LOW);
digitalWrite(relay3, HIGH);
digitalWrite(relay4, LOW);
digitalWrite(led, LOW);
break;
case 104:
digitalWrite(led, HIGH);
digitalWrite(LED_BUILTIN, LOW);
digitalWrite(relay2, LOW);
digitalWrite(relay3, LOW);
digitalWrite(relay4, LOW);
break;
default:
;
}
}