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

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

  • Автоматическая регулировка яркости в зависимости от освещенности.
  • Управление часами с помощью сенсорных кнопок.
  • Встроенный секундомер
  • Встроенный таймер
  • Встроенный будильник
  • Индикатор дня года, от 1 до 365.
  • Отправка текущего времени по интерфейсу UART каждую минуту.
  • Меню настройки времени и даты.
  • Переключение между режимами ЧЧ:ММ и ММ:СС.
  • Анимация окончания суток, прорисовка нулей при переходе 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-AU1
    VT1-VT4
    Биполярный транзисторКТ3130А94
    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-21SRWA4
    любой подходящий с общим катодомДобавить все

    Скачать список элементов (PDF)

    Прикрепленные файлы:

    Добавить комментарий

    Ваш адрес email не будет опубликован.