#include <LiquidCrystal_I2C.h>
#include <dht.h>
#include <Servo.h>
#include <IRremote.h>
#define IR_PIN 10
IRrecv my_pult(IR_PIN);
LiquidCrystal_I2C my_lcd(0x27, 16, 4);
#define TRIG 3
#define ECHO 2
#define DHT_PIN 5
dht DHT_sensor;
Servo my_motor;
#define MOTOR_PIN 9
int led_red_pin = 6;
bool led_state = false;
int led_bright = 255; // яркость светодиода
void setup() {
my_motor.attach(MOTOR_PIN);
my_lcd.init();
my_lcd.backlight();
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);
my_pult.enableIRIn();
pinMode(led_red_pin, OUTPUT);
}
void loop() {
DHT_sensor.read22(DHT_PIN);
digitalWrite(TRIG, 1);
delayMicroseconds(10);
digitalWrite(TRIG, 0);
int duration = pulseIn(ECHO, 1);
int sm = duration / 58;
my_lcd.setCursor(0, 0);
my_lcd.print("Distance: ");
my_lcd.print(sm);
my_lcd.println(" CM");
my_lcd.setCursor(0, 1);
my_lcd.print("T: ");
my_lcd.print(DHT_sensor.temperature);
my_lcd.print(" H: ");
my_lcd.println(DHT_sensor.humidity);
int motor_grad = map(DHT_sensor.temperature, 0, 80, 0, 180);
my_motor.write(motor_grad);
//сдесь я начинаю обрабатывать пульт
if(my_pult.decode()){
my_lcd.setCursor(0,2);
my_lcd.print("KEY_CODE: ");
my_lcd.println(my_pult.decodedIRData.command);
switch(my_pult.decodedIRData.command){
case 162:{
led_state = !led_state;
digitalWrite(led_red_pin, led_state);
}break;
case 152:{
led_bright = led_bright - 10;
analogWrite(led_red_pin, led_bright);
}break;
case 2:{
led_bright = led_bright + 10;
analogWrite(led_red_pin, led_bright);
}break;
}//switch
// сдесь я закончил обрвабатывать пульт
my_lcd.setCursor(0,3);
my_lcd.println(led_bright);
my_pult.resume();
}//if docde()
}