#include <IRremote.h>
#include <LiquidCrystal.h>
//Define Digital Pin
#define MULT_1_S0 2 // Multiplexor 1 S0
#define MULT_1_S1 3 // Multiplexor 1 S1
#define MULT_1_S2 4 // Multiplexor 1 S2
#define MULT_1_S3 5 // Multiplexor 1 S3
#define MULT_2_S0 6 // Multiplexor 2 S0
#define MULT_2_S1 7 // Multiplexor 2 S1
#define MULT_2_S2 8 // Multiplexor 2 S2
#define MULT_2_S3 9 // Multiplexor 2 S3
#define IR_DATA 10 // IR Data Receiver
#define LCD_EN 11 // LCD Enable
#define LCD_RS 12 // LCD Command/DataSelect
#define PinD13 13 //
//Define Analog Pin
#define LCD_D0 14 // LCD ParalelData 0
#define LCD_D1 15 // LCD ParalelData 1
#define LCD_D2 16 // LCD ParalelData 2
#define LCD_D3 17 // LCD ParalelData 3
#define RESET 22 // RESET
IRrecv receiver(IR_DATA);
LiquidCrystal lcd(LCD_RS, LCD_EN, LCD_D0, LCD_D1, LCD_D2, LCD_D3);
void setup()
{
lcd.begin(16, 2);
lcd.print("<press a button>");
receiver.enableIRIn(); // Start the receiver
}
void loop()
{
// Checks received an IR signal
if (receiver.decode()) {
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");
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(receiver.decodedIRData.command);
lcd.print(" other button");
}
}