#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <IRremote.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define PIN_RECEIVER 6
IRrecv receiver(PIN_RECEIVER);
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
void setup() {
Serial.begin(115200);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3D for 128x64
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
delay(2000);
display.clearDisplay();
receiver.enableIRIn(); // Start the receiver
}
void loop() {
// Checks received an IR signal
if (receiver.decode()) {
translateIR();
receiver.resume(); // Receive the next value
}
}
void translateIR()
{
// Takes command based on IR code received
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0, 0);
switch (receiver.decodedIRData.command) {
case 162:
display.clearDisplay();
display.println("POWER");
display.display();
break;
case 226:
display.clearDisplay();
display.println("MENU");
display.display();
break;
case 34:
display.clearDisplay();
display.println("TEST");
display.display();
break;
case 2:
display.clearDisplay();
display.println("PLUS");
display.display();
break;
case 194:
display.clearDisplay();
display.println("BACK");
display.display();
break;
case 224:
display.clearDisplay();
display.println("PREV.");
display.display();
break;
case 168:
display.clearDisplay();
display.println("PLAY");
display.display();
break;
case 144:
display.clearDisplay();
display.println("NEXT");
display.display();
break;
case 104:
display.clearDisplay();
display.println("num: 0");
display.display();
break;
case 152:
display.clearDisplay();
display.println("MINUS");
display.display();
break;
case 176:
display.clearDisplay();
display.println("key: C");
display.display();
break;
case 48:
display.clearDisplay();
display.println("num: 1");
display.display();
break;
case 24:
display.clearDisplay();
display.println("num: 2");
display.display();
break;
case 122:
display.clearDisplay();
display.println("num: 3");
display.display();
break;
case 16:
display.clearDisplay();
display.println("num: 4");
display.display();
break;
case 56:
display.clearDisplay();
display.println("num: 5");
display.display();
break;
case 90:
display.clearDisplay();
display.println("num: 6");
display.display();
break;
case 66:
display.clearDisplay();
display.println("num: 7");
display.display();
break;
case 74:
display.clearDisplay();
display.println("num: 8");
display.display();
break;
case 82:
display.clearDisplay();
display.println("num: 9");
display.display();
break;
default:
display.clearDisplay();
display.println("Please Press a button");
}
}