#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);
}
}