Код реализует вывод даты, времени, температуры и влажности на LCD Из оборудования: LCD с I2C интерфейсом, DS1307, DHT11 Уже есть вот такой вариант кода: Код (Text): //Вывод времени, даты, температуры и влажности на TWI-ЖКИ 16x2 с использованием датчика DHT11 и часов DS1307 #include <Wire.h> //Библиотека для работы по TWI #include <LiquidCrystal_I2C.h> //Библиотека для TWI-ЖКИ #include <RTClib.h> //Библиотека для часов DS1307 #include <DHT.h> //Библиотека для серии датчиков DHT RTC_DS1307 rtc; //Подключаем часы LiquidCrystal_I2C lcd(0x27, 16, 2); //Подключаем ЖКИ по адресу 0x27 DHT dht(9, DHT11); //Подключаем DHT11 на 9 пин byte degree[8] = { //Тут храним занчок градуса 0b01100, 0b10010, 0b10010, 0b01100, 0b00000, 0b00000, 0b00000, 0b00000 }; byte thermometer[8] = { //Тут - значек градусника 0b00100, 0b01010, 0b01010, 0b01010, 0b01110, 0b11111, 0b11111, 0b01110 }; byte drop[8] = { //Тут - значек капли 0b00100, 0b00100, 0b01010, 0b01010, 0b10001, 0b10001, 0b10001, 0b01110 }; int temp; //Сюда пишем температуру int hum; //Сюда - влажность void setup() { Wire.begin(); //Инициализация TWI-шины lcd.init(); //Инициализация ЖКИ lcd.backlight(); //Поключаем подсветку ЖКИ lcd.createChar(1, degree); //Создаем значек градуса lcd.createChar(2, thermometer); //Градусника lcd.createChar(3, drop); //И капли lcd.clear(); //Очищаем ЖКИ rtc.begin(); //Инициализация часов } void loop() { DateTime now = rtc.now(); //Читаем из часов время temp = dht.readTemperature(); //Из DHT11 - температуру hum = dht.readHumidity(); //И влажность lcd.setCursor(0, 0); //Устанавливаем курсор в начало if (now.hour() < 10) lcd.print("0"); //Если часов меньше, чем 10 - пририсовываем нолик lcd.print(now.hour(), DEC); //Отображаем на ЖКИ часы lcd.print(":"); //Отображаем двоеточие if (now.minute() < 10) lcd.print("0"); //Если минут меньше, чем 10 - пририсовываем нолик lcd.print(now.minute(), DEC); //Отображаем на ЖКИ минуты lcd.setCursor(6, 0); //Курсор в середину верхней строки if (now.day() < 10) lcd.print("0"); lcd.print(now.day(), DEC); //Выводим день lcd.print("."); //Отображаем точку if (now.month() < 10) lcd.print("0"); lcd.print(now.month(), DEC); //Выводим месяц lcd.print("."); //Снова точка lcd.print(now.year(), DEC); //Выводим год lcd.setCursor(0, 1); //Курсор в нижнюю строку lcd.print("\2="); //Выводим значек градуса lcd.print(temp); //Выводим температуру lcd.print("\1C"); //Отображаем "градус Цельсия" if (temp < 10) lcd.print(" "); //Если температура упала ниже 10, то может остаться лишняя буква "C", а так мы ее сотрем lcd.setCursor(11, 1); //Курсор в конец нижней строки lcd.print("\3="); //Значек капельки lcd.print(hum); //Выводим влажность lcd.print("%"); //Знак процентов delay(1500); } Т.к. я не огонь в кодинге и это явно не мое, то я не могу придумать, как реализовать подстройку чаов двумя кнопками, а это довольно важная функция. Очень нужна помощь, увы денег особо нет, максимум 200-300 рэ на Я.Деньги кинуть могу на пиво/кофе
вот посмотри как arduinoLab сделал, МНЕ НРАВИТСЯ http://arrduinolab.blogspot.ru/2014/10/blog-post.html
Одна кнопка - переход "год"-"месяц"-"день"-"часы"-"минуты"-"секунды", две кнопки - вверх/вниз - это минимум. Лучше эти три кнопки + "вперед"/"назад" + "ОК". А вообще идеально + "отмена", как на шилде, по ссылке выше.
Все это чудесно, но мне: -Многого не надо, максимум часы и минуты подкручивать -Понять хотяб, как реализовать двухкнопочную настройку -И спасибо за ссылку, но читать чужой код - явно не мое
Сценическая пиротехника Tropic в Москве по ценам производителя: http://tropic.space/ru/agency/moscow/shop Дополнительные данные: Продавец Беспалова Ирина Устиновна E-Mail продавца 3221225472@tropic.space Интернет-каталог http://tropic.space/ru/agency/moscow/shop
Я на всех настройках с дисплея использую 5 кнопок, которые на шилде есть. Влево-вправо выбор разряда, вверх-вниз выбор цифры, select выход из редактирования. Очень удобно и все пять кнопок на одном аналоговом пине висят.