Подключение реле Uno_dht_rtc_lcd
- Войдите на сайт для отправки комментариев
Пнд, 08/08/2016 - 14:03
Всем привет, прогую для себя небольшой комплекс: Arduino Uno + DHT+RTC+LCD, хочу подключить реле, чтоб включалось по времени и может потом по датчику температуры. Показания с RTC и датчика температуры вывожу на экран через i2c
схему нарисую в ближ время, дополню тему.
/* (~ ̄▽ ̄)~ Arduino UNO + DHT22+ LCD via i2c соединен через часы DS3231 DHT22 подключен на 2 пинчерез резистор lcd 1 строка: дата время 2 строка: влажность и температура с датчика DHT22 датчик температуры на плате часов не задействован добра бобра!!! */ #include <DS3231.h> #include <Wire.h> #include <LiquidCrystal_I2C.h> #include <DHT.h> //#include <DS1307RTC.h> // Connect via i2c, default address #0 (A0-A2 not jumpered) LiquidCrystal_I2C lcd(0x27, 16, 2); DS3231 Clock; bool h12 = false; //True is 12-h, false is 24-hour.; bool PM; bool Century = false; DHT dht; byte degree[8] = // кодируем символ градуса { B00111, B00101, B00111, B00000, B00000, B00000, B00000, }; void setup() { //установка настроек экрана //lcd.begin(16, 2); lcd.init(); lcd.backlight();// Включаем подсветку дисплея Wire.begin(); dht.setup(2); } void loop() { int second, minute, hour, date, month, year, temp; year = Clock.getYear(); month = Clock.getMonth(Century); date = Clock.getDate(); hour = Clock.getHour(h12, PM); minute = Clock.getMinute(); second = Clock.getSecond(); temp = Clock.getTemperature(); //вывод даты lcd.setCursor(0, 0); // установка на начало первой строки if (date < 10) lcd.print('0'); lcd.print(date, DEC); // lcd.print('/'); if (month < 10) lcd.print('0'); lcd.print(month, DEC); //lcd.print('/'); //lcd.print("20"); lcd.print(year, DEC); // вывод времени lcd.setCursor(10, 0); // с10 символа 1 строки if (hour < 10) lcd.print('0'); lcd.print(hour, DEC); lcd.print(':'); if (minute < 10) lcd.print('0'); lcd.print(minute, DEC); /* удалил секунды lcd.print(':'); if (second < 10) lcd.print('0'); lcd.print(second, DEC); lcd.print(' '); */ /* датчик температуры на часах lcd.setCursor(13, 1); //13 символ 2 строки lcd.print("T:"); lcd.print(temp); */ // работа с датчиком DHT22 float h = dht.getHumidity(); float t = dht.getTemperature(); lcd.setCursor(0, 1); lcd.print("h:"); lcd.print(h, 1); //округление до десятой lcd.print("% t:"); // пробелы сохраняем. в этой строке 15 символов. lcd.print(t, 1); //lcd.setCursor(15, 1); //знак градуса будет символом на дисплее lcd.write(1); delay(2000); // задержка :) }
быстро нарисовал без платы i2c, датчик и часы другие в этой FRITzing нет тех плат, что у меня.
IMHO если Вы решили поделиться опытом, тему логичнее было бы помещать в "Проекты".
Возникли затруднения как прописать реле чтоб включался по времени
Возникли затруднения как прописать реле чтоб включался по времени
Это зависит от того, какой уровень у реле активный.
Если активный 0 - в нужное время подаете на реле LOW, а в остальное время держите HIGH, а если активный 1 - наоборот.