#include <IRremote.h>
#include <LiquidCrystal_I2C.h>
#include <Servo.h>
const byte IR_RECEIVE_PIN = 2;
#define LED1 7
LiquidCrystal_I2C lcd(0x27,16,2);
Servo servo1;
void setup()
{
servo1.attach(5);
lcd.init();
lcd.begin(16,2);
lcd.backlight();
lcd.setCursor(4,0);
Serial.begin(9600);
Serial.println("IR Receive test");
IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK);
pinMode(LED1, OUTPUT);
}
void loop()
{
if (IrReceiver.decode())
{
String ir_code = String(IrReceiver.decodedIRData.command, HEX);
Serial.println(ir_code);
if (ir_code == "30")
{
lcd.print("READY LCD");
}
else if (ir_code == "18")
{
lcd.clear();
}
else if (ir_code == "7a")
{
lcd.print("LED ON");
digitalWrite(LED1, HIGH);
}
else if (ir_code == "10")
{
lcd.print("LED OFF");
digitalWrite(LED1, LOW);
}
else if (ir_code == "38")
{
lcd.print("OPEN THE DOOR");
servo1.write(180);
}
else if (ir_code == "5a")
{
lcd.print("CLOSE THE DOOR");
servo1.write(0);
}
IrReceiver.resume(); // Resume receiving the next IR signal
}
}