Официальный сайт компании Arduino по адресу arduino.cc
Часы-термометр
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Вс, 03/02/2019 - 21:16
Проект выходного дня. Дисплей 12864ZW подключен по последовательному интерфейсу (подключение показано в соответствии с нумерацией дисплея схемы, у оригинала нумерация справа налево). Наружний датчик - DHT22, внутренний - BME280, часы - DS3231, пищалка - пассивный пьезоэлемент (есть возможность поставить и активный, в прошивке заложены оба варианта), все управляется ардуиной микро mega328P. Т.к. индикатор хочет 3.3В питания пришлось поставить стабилизатор на LM317 (первое что попало под руку). Все управление и настройки делаются через терминал.
В прошивке не использованы сторонние библиотеки, все свое))
Основной скетч:
Управление дисплеем:
Чтение DHT22:
Шина I2C:
Чтение BME280:
Общие подпрограммы ввода-вывода и служебные:
Шрифты, фоновое изображение, фазы луны:
Вывод на экран сделан выводом всего изображения полностью из буфера, что бы не возиться с масками символов и адресацией. Разделение буфера на две части пришлось делать для уменьшения размера массива экрана, что бы IDE не плакала что у нее память кончается))
Команды терминала:
Все настройки хранятся в DS3231 по адресам:
Смысла использовать еепром тут я особого не вижу.
В IDE делается многостраничный скетч ?
Да, в одной портянке трудно ориентироваться. Да и повторно использовать код так гораздо легче.
Конечно. В общих чертах, выбрасываешь самостоятельные модули в отдельные файлы. Всё складываешь в папку скетча. При загрузке скетча файлы-модули подтягиваются автоматом. Есто некоторые тонкости с глобальными переменными, но это поймёшь на практике, если оно тебе надо.
Добрый день. Заинтересовал данный проект, есть желание повторить, но что то не получается скомпилировать, ругается на отсутствие нужных файлов. Как правильно обозвать все файлы которые подгружаем к основному? нужно ли перед каждым ставить маленькую букву "m"? типа: mBME280.h Перепробовал все варианты, поменял пару сред, ни чего не помогает, ошибка одна и таже, что делаю не так? С многостраничным скетчем первый раз дело имею. Если не трудно, можете выложить весь скетч одним архивом куда нибудь на яндекс диск типа.
https://yadi.sk/d/xBINvFrHXW584g
Благодарю, все прошло на ура. Все наглядно и понятно, как говориться век живи век учись.
ТС прошу помощи. Скетч для схемы с первого поста работает без проблем. Больше интересует "расширенная" версия с регулировкой яркости. Возникло пару вопросов. 1. Не могу установить шрифты и яркость (в терминале, при вводе: "I 1.1.255" выдает ошибку не зависимую от параметров). При этом в текущих настройках не меняется только 3-й аргумент, он постоянно =0. 2. Регулировка яркости подразумевалась только через терминал в ручную? правильно я понимаю (хочу подсветку в зависимости от освещенности реализовать). Схему для "расширенного" скетча собрал правильно, с транзистором в цепи подсветки :)
Для меня этот проект уже закрыт)) Вот последняя версия, которая у меня работала - https://yadi.sk/d/6K0qy9JQvkQLEw
Регулировку яркости от внешнего освещения не делал, руки не дошли
Но тут ужу стм32, есп12 и чистый С, все по взрослому)))
Понятно, попробую эту версию. Правильно ли я понимаю, что формат ввода строки "I 1,1,255" должен быть таким ну или с другими разделителями прописанными в скетче, типа пробел, точка, запятая, двоеточие. и все должно получиться. Регулировку по освещенности сам допилю, резберусь вот только с вводом.
Да на стм32 красиво получается, ну там и ресурсов поболее будет.
Да, там были какие-то косяки именно с командой I. Я их устранил, последняя версия должна нормально работать.
Проблемка с командой "I" осталась, не последняя это видимо версия. :)
https://yadi.sk/d/xBINvFrHXW584g
Архив битый,можно поправить.
Архив нормальный, только что проверил. Попробуй архив из поста №10.
Для меня этот проект уже закрыт)) Вот последняя версия, которая у меня работала - https://yadi.sk/d/6K0qy9JQvkQLEw
Регулировку яркости от внешнего освещения не делал, руки не дошли
Но тут ужу стм32, есп12 и чистый С, все по взрослому)))
друг, подскажи, а схема есть на это с этим TFT дисплеем ?