#include <LiquidCrystal_I2C.h>
#include <IRremote.hpp>
#define IR_PIN 2
#define LCD_ADD 0x27
#define LCD_COLS 16
#define LCD_ROWS 2
LiquidCrystal_I2C lcd(LCD_ADD, LCD_COLS, LCD_ROWS);
void initialLCD(){
lcd.init();
lcd.backlight();
lcd.println("<>Press a button<>");
}
void initialReciever(){
IrReceiver.begin(IR_PIN);
}
void setup() {
// put your setup code here, to run once:
initialReciever();
initialLCD();
}
void loop() {
// put your main code here, to run repeatedly:
if(IrReceiver.decode()){
translate();
IrReceiver.resume();
}
}
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(IrReceiver.decodedIRData.command);
}
void translate(){
switch(IrReceiver.decodedIRData.command){
case 162:
lcdPrint("POWER");
break;
case 226:
lcdPrint("MENU");
break;
case 34:
lcdPrint("TEST");
break;
case 2:
lcdPrint("PLUS");
break;
case 194:
lcdPrint("BACK");
break;
case 224:
lcdPrint("PREV.");
break;
case 168:
lcdPrint("PLAY");
break;
case 144:
lcdPrint("NEXT");
break;
case 104:
lcdPrint("num: 0");
break;
case 152:
lcdPrint("MINUS");
break;
case 176:
lcdPrint("key: C");
break;
case 48:
lcdPrint("num: 1");
break;
case 24:
lcdPrint("num: 2");
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(IrReceiver.decodedIRData.command);
lcd.print(" other button ");
}
}