Часы с автоматической регулировкой яркости, сенсорными кнопками и т.д.

В данной статье описываются часы на микроконтроллере ATMega48PA со светодиодными индикаторами и множеством функций:

  1. Автоматическая регулировка яркости в зависимости от освещенности.
  2. Управление часами с помощью сенсорных кнопок.
  3. Встроенный секундомер
  4. Встроенный таймер
  5. Встроенный будильник
  6. Индикатор дня года, от 1 до 365.
  7. Отправка текущего времени по интерфейсу UART каждую минуту.
  8. Меню настройки времени и даты.
  9. Переключение между режимами ЧЧ:ММ и ММ:СС.
  10. Анимация окончания суток, прорисовка нулей при переходе 23:59-00:00.

Общий вид

Часы представляют собой прямоугольный бокс и подставку, сделанные из пластика (поливинилхлорид). Все части корпуса вырезаны ножом и склеены секундным клеем. На передней части корпуса располагается тёмный светофильтр, отсеивающий часть красного света от индикаторов. На подставке располагаются три сенсорных кнопки. Каждая кнопка – это круг небольшого диаметра, вырезанный из медной фольги и приклеенный к основе клеем. На задней стороне располагаются: разъем для подключения адаптера питания и внешних устройств, и звуковое отверстие динамика. Сверху расположен фотоэлемент, реагирующий на изменение освещения. Индикаторами в часах являются семи сегментные светодиодные индикаторы, с типом подключения: общий катод. Всего в часах четыре индикатора, то есть одновременно можно выводить четыре цифры с дополнительными точками внизу. Часы работают от сетевого адаптера с выходным напряжением 5 вольт и минимальной силой тока не менее 150 мА.

При первом включении часы необходимо настроить. Для этого нужно нажать и держать 2 секунды среднюю кнопку (далее СК), часы перейдут в режим настройки. Затем необходимо настроить текущий час левой и правой кнопками (далее ЛК и ПК соответственно) и нажать СК. Так же нужно настроить минуты. Затем таким же образом нужно будет настроить текущий день и нажать СК (далее во всех дополнительных режимах будет использоваться такая же настройка цифр). Часы перейдут в главный режим ЧЧ:ММ (режим 0), то есть на индикаторах отображаются часы и минуты. Однократным нажатием на СК можно перейти в режим ММ:СС (режим 1) и обратно. Если в режиме 0 нажать на ЛК, то часы войдут в режим будильника. После настройки времени сигнала нужно нажать и держать 2 секунды ПК или ЛК. В назначенное время включится тоновый сигнал с частотой около 700 Гц, через 10 секунд сигнал выключится, и будильник автоматически деактивируется. Если в режиме 0 нажать ПК, то часы войдут в режим таймера. По умолчанию, таймер установлен на 5 минут. После настройки времени следует нажать и держать 2 секунды ПК или ЛК и таймер активируется. По истечении времени, так же, как и в случае с будильником, прозвенит тоновый сигнал и отключится через 10 секунд. Если в режиме 1 нажать ПК, то часы перейдут в режим секундомера. Нажатием ЛК секундомер запускается или останавливается, нажатием ПК секундомер сбрасывается. Если в режиме 1 нажать ЛК, то часы перейдут в режим даты, на индикаторах появится текущий день года. Для выхода из этого режима можно нажать любую кнопку. Также, из дополнительных режимов можно перейти в главный режим нажатием СК. Так как все дополнительные режимы являются параллельными, можно установить будильник, поставить таймер и запустить секундомер одновременно.

Яркость индикаторов меняется в зависимости от освещения, днем часы светят ярко, ночью тускло. Всего несколько градаций яркости, которые вычисляются на основе показаний фотодатчика.

В часах присутствует интерфейс UART, с помощью которого каждую минуту на внешние устройства (если таковые имеются) посылается 2 байта: байт часов с выставленным восьмым битом (например, если 15 часов, то байт равен 15+128=143), и байт минут. Восьмой бит при передачи часов используется для того, чтобы внешние устройства могли сразу определить, передается байт часов или байт минут. Можно подключать другие устройства на AVR и получать в них текущее время по UART.

Каждую полночь (при переходе от 23:59 к 00:00) на индикаторах воспроизводится простая анимация в виде поочередной прорисовки нулей, после чего часы продолжают работать в штатном режиме.

Вид сзади

Фьюз-биты:

В прикрепленном файле: проект в Proteus, прошивка, исходник, печатная плата в SLayout.

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
MCU1 МК AVR 8-бит ATmega48PA-AU 1
VT1-VT4 Биполярный транзистор КТ3130А9 4
VT5-VT12 Транзистор КТ218А 8
C1 Электролитический конденсатор 1000мкф 6.3в 1
C2, C3 Конденсатор 20 пф 2
R1 Резистор 200 Ом 1
R3-R5 Резистор 1 МОм 3
R6-R17 Резистор 390 Ом 12
R18 Резистор 150 Ом 1
R19-R25 Резистор 68 Ом 7
R2, R26 Резистор 10 кОм 2
R27 Резистор 470 Ом 1
LDR1 Фоторезистор 1-50 кОм 1
Z1 Кварц 8МГц 1
LS1 Динамик 1 любой маломощный
sp1-sp3 Сенсорная площадка 3 площадки из фольги
Ind1-Ind4 7-сегментный индикатор SC10-21SRWA 4 любой подходящий с общим катодом