#include <LiquidCrystal_I2C.h>
#include <IRremote.hpp>
#define IR_RECEIVE_PIN 14
LiquidCrystal_I2C lcd(0x27, 16, 2);
int flag = 0;
uint16_t readValue (){
uint16_t received{0};
if (IrReceiver.decode()) {
received = IrReceiver.decodedIRData.command;
Serial.println(received);
flag = 1;
IrReceiver.resume();
}
return received;
}
String decoder(String value) {
if (value == "162") {
lcd.print("ON");
return value;
} else if (value == "226") {
lcd.print("MENU");
return value;
}
else if (value == "34")
{
lcd.print("TEST");
return value;
}
else if (value == "2")
{
lcd.print("Volume Up");
return value;
}
else if (value == "194")
{
lcd.print("Back");
return value;
}
else if (value == "224")
{
lcd.print("Prev");
return value;
}
else if (value == "168")
{
lcd.print("Play");
return value;
}
else if (value == "144")
{
lcd.print("Next");
return value;
}
else if (value == "104")
{
lcd.print("0");
return value;
}
else if (value == "152")
{
lcd.print("Volume Down");
return value;
}
else if (value == "176")
{
lcd.print("Reset");
return value;
}
else if (value == "48")
{
lcd.print("1");
return value;
}
else if (value == "24")
{
lcd.print("2");
return value;
}
else if (value == "122")
{
lcd.print("3");
return value;
}
else if (value == "16")
{
lcd.print("4");
return value;
}
else if (value == "56")
{
lcd.print("5");
return value;
}
else if (value == "90")
{
lcd.print("6");
return value;
}
else if (value == "66")
{
lcd.print("7");
return value;
}
else if (value == "74")
{
lcd.print("8");
return value;
}
else if (value == "82")
{
lcd.print("9");
return value;
}
else {
lcd.print("Value not found");
return value;
}
}
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK);
}
void loop() {
String new_value = String(readValue());
// Serial.println(new_value);
if(new_value != "0"){
// Serial.println("ada data masuk");
while (flag == 1){
lcd.clear();
decoder(new_value);
flag = 0;
}
}
}