Сидя на карантине, чтобы не отупеть полностью, я решил сделать хоть что-то. В конечном итоге, я решил доделать все старые проекты, которые я делал когда учился программировать под МК (Чему я так и не научился). Это: - Часы - Комнатная метеостанция - Проигрыватель монофонических мелодий Так же, для того чтобы был хоть какой-то челенж, я решил сделать это на Atmega8.
В итоге получилось следующее устройство. Часы/Будильник/Календарь/Комнатная метеостанция.
MCU - Atmega8a LCD - HD44780 (16x2) с Кириллицей. RTC - DS3231 Sensor - DHT11/22 (Но с 22 не проверял)
Часы. Возможность отображения в 12 и 24 часовых форматах. Два будильника. (Активность будильника отображается заменой разделительной точки на колокольчик (Только для дисплеев с кириллицей)) Календарь. Возможность измерения температуры. (Без датчика DHT11) Возможность измерения температуры и влажности. (с DHT11) Авторегулировка яркости подсветки дисплея. Монофоническая мелодия для будильника. Три информационных экрана. (Время, температура, дата и день недели) Семь шаблонов переключения между информационными экранами с настраиваемым временем переключения.
Так же небольшая видео демонстрация работы данного устройства:
В конечном итоге, прототип данного устройства лежит на полке уже больше двух месяцев. Только для измерения температуры использую встроенный термометр в RTC, мой DHT11 полумертвый. Та и в часах сенсор точнее и с большим разрешением. Из обнаруженных недостатков только неудобство включения/отключения будильников. Его лучше бы дублировать длинным нажатием кнопки вверх и вниз для 1-го и 2-го будильников соответственно.
Ссылка на проект: https://github.com/VALINT/Saturn Здесь присутствую исходники, схема, плата (Хотя она не очень ибо под выводные компоненты), а так же проект симуляции в ШПротеусе 8.7.
Как и писал выше, не плохо было бы услышать критику. Особенно в отношении схематики и программы. Спасибо за внимание.
Все бы эти LCD_ вынести бы из FSM. Да и тело основное напрашивается на разбиение на разные юниты (файлы). Ну и когда FSM достаточно сложный, лучше что-то по-интереснее, чем switch делать уже имхо. Структуру или таблицу переходов. И тут самое кнопки как события независимые делать. Кратко писал тут и далее: https://radiokot.ru/forum/viewtopic.php ... 4#p3826024 Ну и в целом если не забывать про колбэки и в общем, что можно функцию как указатель хранить, то многие вещи можно удобнее сделать. Но это уже необязательно конечно, но раз проект "академического" назначения, то можно и в эту сторону улучшений посмотреть. Из плюсов - улучшается читаемость и мастшабируемость.
даже не критика, а рекомендация: когда сработал будильник, мало показать призыв "вставать" (а если это будильник "на обед"?), надо еще и время показывать! думаю, никого не обрадует, когда звонит будильник, а время не определено...
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Заголовок сообщения: Re: Часы / комнатная метеостанция на Atmega8 + HD44780(16x2
Добавлено: Ср июл 15, 2020 23:30:33
Теоретически можно, если оба ведущие будут «понимать» свободна или занята шина. Но корректней когда датчик опрашивает одно устройство, а показание передаёт другим устройствам (по проводной или беспроводной связи).
Да, но в моем понимании, для вывода изображения пришлось бы делать схожую структуру со Switch case ну или через if else что увеличило бы расход памяти. Или я ошибаюсь?
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения