#include <IRremote.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd_left(0x27,16,2);
LiquidCrystal_I2C lcd_right(0x26,16,2);
long int lasttime = 0;
int pause = 5000;
int red_but = 2;
#define PIN_RECEIVER 3
IRrecv IR(PIN_RECEIVER);
bool vkl = 0;
int red_led = 5;
int brightness = 127;
int command_sw(int data){
switch (data) {
case 162:
vkl = !vkl;
digitalWrite(red_led, vkl);
break;
case 2:
if (brightness < 252) brightness = brightness + 5;
analogWrite(red_led, brightness);
break;
case 152:
if (brightness > 2)brightness = brightness - 5;
analogWrite(red_led, brightness);
break;
}
}
void setup() {
pinMode(red_led, OUTPUT);
pinMode(red_but, INPUT_PULLUP);
lcd_left.init();
lcd_right.init();
lcd_left.backlight();
lcd_right.backlight();
lcd_left.setCursor(2, 0);
lcd_left.print("LEFT LCD");
lcd_right.setCursor(2, 0);
lcd_right.print("RIGHT LCD");
IR.enableIRIn();
}
void loop() {
if (IR.decode()) {
IR.resume(); // Receive the next value
lcd_left.setCursor(2, 1);
lcd_left.print(" ");
lcd_left.setCursor(2, 1);
lcd_left.print(IR.decodedIRData.command);
command_sw(IR.decodedIRData.command);
}
lcd_right.setCursor(0, 1);
lcd_right.print(" ");
lcd_right.setCursor(2, 1);
lcd_right.print(brightness);
if (millis() - lasttime > pause){
lasttime = millis();
lcd_left.noBacklight();
lcd_right.noBacklight();
}
if (digitalRead(red_but) == 0){
lasttime = millis();
lcd_left.backlight();
lcd_right.backlight();
delay(500);
}
}