//Надо просто добавить чтобы режимы переключались каждые 20 сек и чтобы это время ещё считало
//просто довавить Time и сделать Time++ и чтобы оно его считывало .
#include <Servo.h>;
#include <DHT.h>;
#include <Wire.h>;
#include <LiquidCrystal_I2C.h>;
byte pos;
float temp , hum ;
DHT datchic (2,DHT22); //Подключение датчика
Servo servo;
LiquidCrystal_I2C LCD (0x27 , 16 ,2 ); //Сколько символов
void setup()
{
Serial.begin(9600);
datchic.begin();
LCD.init();
LCD.backlight();
LCD.setCursor(0,0);
LCD.print("Temp=");
LCD.setCursor(0,1);
LCD.print("Hum=");
pinMode(3, OUTPUT); //Подключение серво
servo.attach(3);
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
}
void loop()
{
temp=datchic.readTemperature();
hum=datchic.readHumidity();
Serial.print("temp=");
Serial.print(temp);
Serial.print(" hum=");
Serial.println(hum);
LCD.setCursor (5,0);
LCD.print(temp);
LCD.print(char (223));
LCD.print(" ");
LCD.setCursor (4,1);
LCD.print(hum);
LCD.print("%");
if(hum<100)
{
LCD.setCursor (10,1);
LCD.print(" ");
}
if((temp>=20) && (temp<=30))
{
delay (5000);
digitalWrite(13 , 1);
LCD.setCursor (13,0);
LCD.print("on1 ");
digitalWrite(12 , 0);
digitalWrite(11 , 0);
}
else
{
if((temp>=30) && (temp<=40))
{
delay (5000);
digitalWrite(12 , 1);
LCD.setCursor (13,0);
LCD.print("on2 ");
digitalWrite(13 , 0);
digitalWrite(11 , 0);
}
else
{
if(temp>=40)
{
delay (5000);
digitalWrite(11 , 1);
LCD.setCursor (13,0);
LCD.print("on3 ");
digitalWrite(12 , 0);
digitalWrite(12 , 0);
}
if(temp<=20)
{
digitalWrite(13 , 0);
digitalWrite(12 , 0);
digitalWrite(11 , 0);
LCD.setCursor (13,0);
LCD.print("off");
}
}
}
if(pos<100)
{
LCD.setCursor (15,1);
LCD.print(" ");
}
LCD.setCursor (13,1);
LCD.print(pos);
servo.write(pos);
if(hum<40)
{
pos=0;
LCD.setCursor (14,1);
LCD.print(" ");
}
else
{
pos=map(hum,40,100,0,180);
}
Serial.print(" pos=");
Serial.println(pos);
delay (2000);
}