#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <IRremote.h>
#define PIN_RECEIVER 15 // Signal Pin of IR receiver
IRrecv IRReceiver(PIN_RECEIVER);
LiquidCrystal_I2C LCDDisplay(0x27,16,2);
unsigned long TimeCount;
byte InDisplay=0;
byte Light1Status=0;
byte Light2Status=0;
byte Light3Status=0;
byte Light4Status=0;
byte Light5Status=0;
byte Light6Status=0;
byte Light7Status=0;
byte Light8Status=0;
byte Light9Status=0;
void DisplayMain()
{
LCDDisplay.clear();
LCDDisplay.print("T.TIEN - VAN LAM");
LCDDisplay.setCursor(0,1);
LCDDisplay.print(" DUY CUONG");
}
void DisplayOn(byte Device)
{
LCDDisplay.clear();
LCDDisplay.print(" DEN PHONG ");
LCDDisplay.print(Device);
LCDDisplay.setCursor(0,1);
LCDDisplay.print(" SANG");
}
void DisplayOff(byte Device)
{
LCDDisplay.clear();
LCDDisplay.print(" DEN PHONG ");
LCDDisplay.print(Device);
LCDDisplay.setCursor(0,1);
LCDDisplay.print(" TAT");
}
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
LCDDisplay.init();
LCDDisplay.backlight();
IRReceiver.enableIRIn(); // Start the receiver
TimeCount=millis();
DisplayMain();
}
void loop() {
// put your main code here, to run repeatedly:
if(millis()-TimeCount>3000)
{
TimeCount=millis();
if(InDisplay==1)
{
InDisplay=0;
DisplayMain();
}
}
if (IRReceiver.decode())
{
Serial.println(IRReceiver.decodedIRData.command);
if(IRReceiver.decodedIRData.command==48)
{
InDisplay=1;
TimeCount=millis();
if(Light1Status==0)
{
Light1Status=1;
DisplayOn(1);
}
else
{
Light1Status=0;
DisplayOff(1);
}
}
else if(IRReceiver.decodedIRData.command==24)
{
InDisplay=1;
TimeCount=millis();
if(Light2Status==0)
{
Light2Status=1;
DisplayOn(2);
}
else
{
Light2Status=0;
DisplayOff(2);
}
}
else if(IRReceiver.decodedIRData.command==122)
{
InDisplay=1;
TimeCount=millis();
if(Light3Status==0)
{
Light3Status=1;
DisplayOn(3);
}
else
{
Light3Status=0;
DisplayOff(3);
}
}
else if(IRReceiver.decodedIRData.command==16)
{
InDisplay=1;
TimeCount=millis();
if(Light4Status==0)
{
Light4Status=1;
DisplayOn(4);
}
else
{
Light4Status=0;
DisplayOff(4);
}
}
else if(IRReceiver.decodedIRData.command==56)
{
InDisplay=1;
TimeCount=millis();
if(Light5Status==0)
{
Light5Status=1;
DisplayOn(5);
}
else
{
Light5Status=0;
DisplayOff(5);
}
}
else if(IRReceiver.decodedIRData.command==90)
{
InDisplay=1;
TimeCount=millis();
if(Light6Status==0)
{
Light6Status=1;
DisplayOn(6);
}
else
{
Light6Status=0;
DisplayOff(6);
}
}
else if(IRReceiver.decodedIRData.command==66)
{
InDisplay=1;
TimeCount=millis();
if(Light7Status==0)
{
Light7Status=1;
DisplayOn(7);
}
else
{
Light7Status=0;
DisplayOff(7);
}
}
else if(IRReceiver.decodedIRData.command==74)
{
InDisplay=1;
TimeCount=millis();
if(Light8Status==0)
{
Light8Status=1;
DisplayOn(8);
}
else
{
Light8Status=0;
DisplayOff(8);
}
}
else if(IRReceiver.decodedIRData.command==82)
{
InDisplay=1;
TimeCount=millis();
if(Light9Status==0)
{
Light9Status=1;
DisplayOn(9);
}
else
{
Light9Status=0;
DisplayOff(9);
}
}
IRReceiver.resume(); // Receive the next value
}
}