#include <Wire.h>
#include <IRremote.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_WIDTH 128 // OLED display width, in pixels
#define OLED_HEIGHT 64 // OLED display height, in pixels
Adafruit_SSD1306 oled(OLED_WIDTH, OLED_HEIGHT, &Wire, -1);
const int relay1Pin = 9;
const int relay2Pin = 10;
const int relay3Pin = 11;
#define PIN_RECEIVER 12
IRrecv receiver(PIN_RECEIVER);
void setup()
{
pinMode(relay1Pin, OUTPUT);
pinMode(relay2Pin, OUTPUT);
pinMode(relay3Pin, OUTPUT);
pinMode(3, INPUT);
receiver.enableIRIn();
Serial.begin(9600);
if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed")); while (true);}
delay(1000);
oled.clearDisplay();
oled.setTextSize(1);
oled.setTextColor(WHITE);
oled.setCursor(20, 00);
oled.println("Test");
oled.setCursor(20, 35);
oled.println(" Testiii");
oled.display();
}
void loop()
{
if (receiver.decode()) {IRrelaycont();receiver.resume();}
if (digitalRead(3) == HIGH && digitalRead(relay1Pin) == LOW) {digitalWrite(relay1Pin,HIGH); delay(15);}
if (digitalRead(3) == HIGH && digitalRead(relay1Pin) == HIGH) {digitalWrite(relay1Pin,LOW); delay(15);}
oled.setCursor(20, 00);
oled.clearDisplay();
oled.println(receiver.decodedIRData.command);
oled.display();
}
void IRrelaycont()
{
switch (receiver.decodedIRData.command) {
case 162:
;
break;
case 226:
;
break;
case 34:
;
break;
case 2:
;
break;
case 194:
;
break;
case 224:
;
break;
case 168:
;
break;
case 144:
;
break;
case 104:
;
break;
case 152:
;
break;
case 176:
;
break;
case 48:
if (digitalRead(relay1Pin)==LOW) {digitalWrite(relay1Pin,HIGH);} else {digitalWrite(relay1Pin,LOW);}
break;
case 24:
if (digitalRead(relay2Pin)==LOW) {digitalWrite(relay2Pin,HIGH);} else {digitalWrite(relay2Pin,LOW);}
break;
case 122:
if (digitalRead(relay3Pin)==LOW) {digitalWrite(relay3Pin,HIGH);} else {digitalWrite(relay3Pin,LOW);}
break;
case 16:
;
break;
case 56:
;
break;
case 90:
;
break;
case 66:
;
break;
case 74:
;
break;
case 82:
;
break;
default:
;
}
}