#include #include #include // Infra-red receiver on pin 7. IRrecv irrecv(7); // Set the LCD address to 0x27 for a 16 chars and 2 line display LiquidCrystal_I2C lcd(0x27, 16, 2); void setup() { Serial.begin(115200); // for serial monitor output // initialize the LCD lcd.begin(); // Turn on the blacklight lcd.setBacklight((uint8_t)1); // First row lcd.print("Press Your Keys!"); // Second row lcd.setCursor(0, 1); lcd.print("IR Decode Demo"); // Start the receiver irrecv.enableIRIn(); // Setup complete Serial.println( "READY" ); } void update_lcd( long result ) { // Convert the number to a hex string char string[12]; snprintf (string, sizeof(string) - 1, "%lX", result); // Ensure it has the right number of digits. if ( strlen( string ) != 6 ) return; // Show what we received on the serial console Serial.print( "Read value: " ); Serial.println(string); lcd.setCursor( 0, 0 ); lcd.print( "Code :" ); lcd.print( result, HEX); lcd.print( " " ); lcd.setCursor( 0, 1 ); switch ( result) { case 0xFFA25D: lcd.print( "CH-" ); break; case 0xFF629D: lcd.print("CH" ); break; case 0xFFE21D: lcd.print("CH+"); break; case 0xFF22DD: lcd.print("Prev"); break; case 0xFF02FD: lcd.print("Next"); break; case 0xFFC23D: lcd.print("Play"); break; case 0xFF906F: lcd.print("EQ"); break; case 0xFF30CF: lcd.print("1"); break; case 0xFF18E7: lcd.print("2"); break; case 0xFF7A85: lcd.print("3"); break; case 0xFF10EF: lcd.print("4"); break; case 0xFF38C7: lcd.print("5"); break; case 0xFF5AA5: lcd.print("6"); break; case 0xFF42BD: lcd.print("7"); break; case 0xFF4AB5: lcd.print("8"); break; case 0xFF52AD: lcd.print("9"); break; case 0xFF6897: lcd.print("0"); break; case 0xFF9867: lcd.print("100+"); break; case 0xFFB04F: lcd.print("200+"); break; case 0xFFE01F: lcd.print("-"); break; case 0xFFA857: lcd.print("+"); break; default: break; } lcd.print(" "); } void loop() { decode_results results; if (irrecv.decode(&results)) // have we received an IR signal? { // // Update the display - with the decoded value. // update_lcd( results.value ); // // Continue with the input-processing. // irrecv.resume(); } }