#include <IRremote.h>
#include <LiquidCrystal.h>
#define PIN_RECEIVER 2 // Signal Pin of IR receiver
IRrecv receiver(PIN_RECEIVER);
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
int A;
int B;
int result;
void setup()
{
lcd.begin(16, 2);
lcd.print("<KALKULATOR IR>");
receiver.enableIRIn(); // Start the receiver
}
void loop()
{
// Checks received an IR signal
if (receiver.decode()) {
translateIR();
receiver.resume(); // Receive the next value
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Kalkulator IR:");
lcd.setCursor(0, 1);
lcd.print(A);
lcd.setCursor(1, 1);
lcd.print(" + ");
lcd.setCursor(4, 1);
lcd.print(B);
lcd.setCursor(5, 1);
lcd.print(" = ");
lcd.setCursor(8, 1);
lcd.print(result);
}
}
void translateIR()
{
// Takes command based on IR code received
switch (receiver.decodedIRData.command) {
case 2:
B = A;
A = 0;
break;
case 168:
result = A + B;
break;
case 176:
A = 0;
B = 0;
result = 0;
break;
case 104:
A = 0;
break;
case 48:
A = 1;
break;
case 24:
A = 2;
break;
case 122:
A = 3;
break;
case 16:
A = 4;
break;
case 56:
A = 5;
break;
case 90:
A = 6;
break;
case 66:
A = 7;
break;
case 74:
A = 8;
break;
case 82:
A = 9;
break;
}
}