#include <IRremote.h>
#include <LiquidCrystal.h>
int led = A0;
int fan = A1;
int Light = A2;
int Buzzer = 6;
int brightness = 0;
#define PIN_RECEIVER 2 // Signal Pin of IR receiver
IRrecv receiver(PIN_RECEIVER);
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
void setup()
{
lcd.begin(16, 2);
lcd.print("<press a button>");
receiver.enableIRIn(); // Start the receiver
pinMode(led, OUTPUT);
pinMode(fan, OUTPUT);
pinMode(Light, OUTPUT);
pinMode(Buzzer, OUTPUT);
brightness = 0;
Serial.begin(115200);
}
void loop()
{
// Checks received an IR signal
if (receiver.decode()) {
lcd.clear();
translateIR();
receiver.resume(); // Receive the next value
}
}
void lcdPrint(char* text)
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("button pressed:");
lcd.setCursor(0, 1);
lcd.print(text);
lcd.print(" code: ");
lcd.print(receiver.decodedIRData.command);
}
void translateIR()
{
// Takes command based on IR code received
switch (receiver.decodedIRData.command) {
case 162:
lcdPrint("POWER ON");
digitalWrite(Buzzer, HIGH);
delay(2000);
digitalWrite(Buzzer, LOW);
break;
case 226:
digitalWrite(Light, HIGH);
break;
case 34:
digitalWrite(Light, LOW);
break;
case 2:
if (brightness >= 0);
{
analogWrite(led,brightness);
brightness = brightness + 100;
digitalWrite(Buzzer, HIGH);
delay(2000);
digitalWrite(Buzzer, LOW);
}
break;
case 194:
lcdPrint("BACK");
break;
case 224:
{
analogWrite(fan ,brightness);
brightness = brightness + 50;
digitalWrite(Buzzer, HIGH);
delay(2000);
digitalWrite(Buzzer, LOW);
}
break;
case 168:
lcdPrint("PLAY");
break;
case 144:
{
analogWrite(fan ,brightness);
brightness = brightness - 50;
digitalWrite(Buzzer, HIGH);
delay(2000);
digitalWrite(Buzzer, LOW);
}
break;
case 104:
lcdPrint("num: 0");
break;
case 152:
brightness = brightness - 100;
analogWrite(led,brightness);
digitalWrite(Buzzer, HIGH);
delay(2000);
digitalWrite(Buzzer, LOW);
break;
case 176:
lcdPrint("key: C");
break;
case 48:
digitalWrite(led, HIGH);
digitalWrite(Buzzer, HIGH);
delay(2000);
digitalWrite(Buzzer, LOW);
break;
case 24:
lcdPrint("num: 2");
digitalWrite(led, LOW);
digitalWrite(Buzzer, HIGH);
delay(2000);
digitalWrite(Buzzer, LOW);
break;
case 122:
lcdPrint("num: 3");
break;
case 16:
lcdPrint("num: 4");
break;
case 56:
lcdPrint("num: 5");
break;
case 90:
lcdPrint("num: 6");
break;
case 66:
lcdPrint("num: 7");
break;
case 74:
lcdPrint("num: 8");
break;
case 82:
lcdPrint("num: 9");
break;
default:
lcd.clear();
lcd.print(receiver.decodedIRData.command);
lcd.print(" other button");
}
}