#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 inputA = 0;
int inputB = 0;
int hasil;
int tambah(int _satu, int _dua) {
return _satu + _dua;
}
void setup()
{
Serial.begin(115200);
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(inputA);
lcd.setCursor(2, 1);
lcd.print("+");
lcd.setCursor(4, 1);
lcd.print(inputB);
lcd.setCursor(6, 1);
lcd.print("=");
lcd.setCursor(8, 1);
lcd.print(hasil);
}
}
void translateIR()
{
// Takes command based on IR code received
switch (receiver.decodedIRData.command) {
case 2:
inputB = inputA;
inputA = 0;
break;
case 168:
hasil = inputA + inputB;
break;
case 176:
inputA = 0;
inputB = 0;
hasil = 0;
break;
case 104:
inputA = 0;
break;
case 48:
inputA = 1;
break;
case 24:
inputA = 2;
break;
case 122:
inputA = 3;
break;
case 16:
inputA = 4;
break;
case 56:
inputA = 5;
break;
case 90:
inputA = 6;
break;
case 66:
inputA = 7;
break;
case 74:
inputA = 8;
break;
case 82:
inputA = 9;
break;
}
}