Простые часы на микроконтроллере ATMega328p

Воспользовавшись длинными выходными наконец-то закончил очередную поделку, которую начал почти год назад. Хотя в этом ничего удивительного нет — электроника у меня «зимнее» хобби, когда лишний раз на улицу выходить не хочется.

img_8468.jpg

Сам по себе проект ничего особенного собой не представляет — микроконтроллер Atmega328p и часы DS3231. Более-менее интересный момент только один — индикатор с общим анодом, но подключен к MAX7219, которая управляет индикаторами с общим катодом. Пришлось немного заморочиться с отображением цифр.

img_8464.jpg

Хочется отметить (в первую очередь для себя, на будущее):

  • Откомпилированный код занимает чуть больше 3Кб, так что вполне можно было использовать Atmega8. Не самая большая проблема, конечно
  • Вот конкретно эти кнопки — ужасны. Использую их уже во второй поделке и плююсь. Срабатывания нечеткие, контакты ужасно дребезжат. На помойку.
  • Вследствие этого попрыгал с устранением дребезга — это лучше делать аппаратно, нежели программно.
  • Таймер DS3231 хороший, в одном корпусе с кварцем. Программируется очень просто. Один момент — в даташите прописано, что после каждого блока данных надо ждать ACK, но при этом оно зависает намертво. Зато прекрасно работает с NACK. Видимо, где-то глюк, но разбираться лень.
  • Разъем Micro USB показался мне более удобным и надежным. В предыдущих часах Mini USB и он уже разболтался, еле держит. Хотя часы — не мобильный телефон. Каждый день их никто туда-сюда не дергает.
  • Разъем программатора с шагом 1.27 мм тоже неплох в плане занимаемого места. Однако собственно разъем нужно подобрать какой-нибудь другой. Обычные pin head до одурения хлипкие.
  • Фоторезистор и динамическое управление яркостью — это очень, очень хорошо. В результате часы нормально читаются и на солнце, и ночью.

img_8473.jpg

Встроенный в микросхему часов таймер имеет на борту датчик температуры, который безбожно врет. Возможно, это просто дефект конкретной микросхемы. А так больше никаких сюрпризов не было.

img_8463.jpg

Собранная схема жрет в пике порядка 0.05А. В темноте — еще меньше.

Исходники и схема лежат в моём репозитории на гитхаб.