РадиоКот :: Часы Click Clock с акселерометром
Например TDA7294

РадиоКот >Схемы >Цифровые устройства >Бытовая техника >

Теги статьи: ЧасыДобавить тег

Часы Click Clock с акселерометром

Автор: Сергей Безруков (aka Ser60)
Опубликовано 01.03.2018
Создано при помощи КотоРед.

Недавно я увидел в продаже часы, в которых светодиодный дисплей включался на несколько секунд лёгким постукиванием по корпусу, и сразу понял, что это то, что мне нужно. Установленные у меня на прикроватной тумбочке часы светят постоянно и мешают ночью спать, даже если уменьшить их яркость до минимума. Если-же часы отвернуть в сторону, чтобы цифры не светили в лицо, то нужно будет несколько приподниматься ночью для считывания времени, что неудобно. Покрутив часы в руках в магазине я всё-же решил их не покупать, а сделать свои. Причин тому нашлось несколько. После показа времени промышленные часы также показывали дату и температуру, что ночью совершенно не нужно. В некоторых других вариантах настольных часов показ температуры можно отключить, а также установливать несколько будильников на разное время, что мне также не нужно. Эти и другие дополнительные функции сделали цену таких часов, на мой взгляд, неадекватной. Кроме того, на мой вкус у них непропорционально большой корпус и слишком маленькие цифры.

Мне хотелось собрать часы, включающие показ только времени примерно на 5 секунд после единичного стука по корпусу или любому месту тумбочки. В дневное время в спальню мы заходим редко, да и на часы там практически никогда не смотрим, поэтому большая яркость дисплея и её регулировка не требуется. Часы должны быть оснащены будильником, не иметь никаких внешних проводов, и работать от батарей достаточно долгое время. В результате получилась следующая схема.

Отсчёт и хранение времени в часах производится микросхемой IC1 часов реального времени фирмы Epson с встроенным высокоточным DTCXO и кристаллом. Подавляющую часть времени микросхема питается через вывод 2. При неактивном интерфейсе I2C её токопотребление находится в субмикроамперном диапазоне. Чтобы избежать переустановку времени после смены батарей, питание микросхемы на время смены осуществляется энергией, запасённой в конденсаторах C3, C4. Резистор R1 ограничивает ток заряда конденсаторов через диод внутри микросхемы, который можно программо закоротить. В нашем случае диод не закорочен и предотвращает питание от конденсаторов цепей вне RTC. Переключение источников питания производится микросхемой автоматически по падению напряжения на выводе 2 ниже порога. По сравнению с популярной DS3231MZ эта микросхема имеет меньшие габариты, более широкий диапазон питающих напряжений, и доступна по почти в 2 раза более низкой цене.

Дисплей состоит из двух 2-знаковых индикаторов с общим катодом и высотой цифр 0.56”. Один из индикаторов развёрнут на 180° для отображения точек, разделяющих часы и минуты. Соответствующие сегменты цифр каждого индикатора соединены параллельно в корпусе, что упрощает его разводку на плате. Управление индикаторами производится драйвером IC4 со встроенными генераторами тока на каждый сегмент. В микросхеме реализован уникальный принцип динамической индикации для управления всеми индикаторами только по 9 проводам. В перерывах между показом времени драйвер и дисплей обесточены, что благоприятно сказывается на токопотреблении схемы. Драйвер IC4 также обеспечивает мигание точек. Следует отметить, что он изначально проектировался для индикаторов с раздельными выводами сегментов всех цифр, но может работать и с совмещёнными двойными индикаторами (как наши) в соответствии с приёмом, описанном в [1], путём введения в схему диодов D2, D3. Частота мигания сегментов зависит от ёмкости C10 и сопротивления R6. Последним также определяется максимальный ток сегментов. При указанных на схеме типовых номиналах частота медленного и быстрого мигания получается около 1гц и 2гц, соответственно. Из 15 установок градаций яркости драйвера используется наименьшая. Для применённых индикаторов с зелёным цветом свечения этого более чем достаточно в тёмное время суток и также подходит для светлого. Чувствительность глаза более высокая к зелёному цвету чем к красному, и имеется огромный запас по яркости для адаптации к индикаторам других типов.

Включение дисплея производится с помощью акселерометра IC2 фирмы ST. В нём, помимо всего прочего, аппаратно реализована функция распознавания единичных (и двойных) толчков, что ощутимо упрощает программу МК. Акселерометр сконфигурирован на работу в экономном режиме с низким 12-битным разрешением на пределе ±2g при частоте выборок ODR 50гц, потребляя при этом всего 3.5 мкА. При регистрации толчка он формирует падающий уровень напряжения на выводе 12, и тем самым выводит управляющий МК IC3 из сна. Порог и длительность ускорения толчка для его регистрации устанавливается программно по каждой оси. Я задействовал только ось X (направленную в рабочем положении часов вертикально вниз) при минимальном пороге чувствительности. Эксперименты показали, что при данном ODR акселерометр надёжно распознаёт лёгкое постукивание в любой точке на поверхности деревянной тумбочки в месте установки часов. Акселерометр поддерживает интерфейсы I2C и SPI. Обращаю внимание, что на выводах CS и SDO/SA0 микросхемы установлены внутренние подтягивающие резисторы, причём второй из них нельзя отключить программно. У меня они оба подключены, что позволило в случае I2C интерфейса оставить оба этих вывода корпуса висячими.

Управление всеми ресурсами часов производится микроконтроллером IC2 архитектуры ARM Cortex-M0+. Он принадлежит к микромощной серии L семейства Kinetis и в активном режиме VLPR тактируется на частоте 4мгц. Собственное его потребление при этом получается в районе 250мкА. В режиме глубокого сна с включённым таймером LPTMR его измеренное потребление оказалось около 2.3мкА. Сегодня это не рекорд, но довольно неплохо. Питание часов производится от двух щелочных батарей AAA через преобразователь IC5 фирмы Texas Instruments, повышающий их напряжение до 3.3В. При использовании индикаторов красного цвета рекомендую использовать 3-вольтовую версию TPS610985. Вывод 1 преобразователя используется для непрерывного питания микросхем IC1 - IC3, а вторичный 5 – только для питания драйвера дисплея IC4 при показе времени. Коммутация вторичного источника осуществляется МК через вывод 4 встроенным в микросхему ключом. Преобразователь имеет 2 режима работы. При отключении вторичной нагрузки он автоматически разряжает фильтрующую ёмкость на этом выводе и переходит в экономный режим с собственным потреблением порядка 300нА. Измеренное среднее токопотребление всей схемы от батарей при этом оказалось в районе 19мкА. При включении дисплея потребление возрастает до уровня 27мА. Таким образом, если использовать часы для чтения времени 5 раз за ночь (в моей практике обычно 1 - 3 раза) в течении 5 сек, среднее токопотребление схемы составит около 27мкА. Принимая ёмкость щелочных батарей AAA равной 1000мАч и их ток саморазряда порядка 10мкА, одного комплекта их хватит на работу часов в течении 3 лет. При использовании литиевых неперезаряжаемых батарей Energizer L92 время работы увеличивается примерно до 4.5 лет. Применение аккумуляторов в данном случае нецелесообразно из-за гораздо большего их тока саморазряда. Я предпочитаю поставить батареи и забыть про них на 3 года, не отвлекаясь на зарядку.

Часы смонтированы на двух односторонних печатных платах размера 35×51мм, скреплённых сендвичем металлическими втулками с резьбой М2. На одной из плат расположены индикаторы и драйвер IC4 с соответствующей обвязкой. На другой – все остальные части схемы, включая держатель батарей и кнопки на тыльной стороне платы. Ширина плат соответствует размеру держателя батарей. Держатель касается поверхости установки часов и за счёт этого, а также смещения вниз центра тяжести конструкции, фактически исключает возможность её опрокидывания. Неразведённые соединения на платах и между ними реализованы проволочными перемычками. Файлы для Eagle обоих плат прилагаются. В процессе отладки выявились мелкие ошибки проектирования платы справа, поэтому она сейчас слегка отличается от первичной версии, показанной ниже. Для коррекции я просто перерезал пару дорожек и сделал надлежащие соединения тонкими проводами. Прилагаемые файлы для Eagle свободны от этих ошибок.

 

Контактная площадка на нижней стороне микросхемы IC4 припаяна к фольге платы для теплоотвода. Однако, за 5 секунд работы в лёгком токовом «ночном» режиме микросхема остаётся совершенно холодной. Вместо двух танталовых конденсаторов C3, C4 достаточно установить только один. Его ёмкости хватит для питания микросхемы RTC в течении нескольких минут во время смены батарей.

Программа МК разработана в среде Keil µVision, исходные тексты проекта прилагаются. В программе имеется несколько режимов работы, реализованных на основе конечного автомата. Падающим уровнем сигнала от акселерометра МК выводится из сна, читает время из RTC, включает дисплей и показывает время на нём в течении 5 секунд с последующим выключением дисплея и уходом обратно в сон. При этом точки, разделяющие часы и минуты на дисплее, мигают в случае неустановленного будильника, и горят постоянно в противном случае. Падающий уровень на выводе INT IC1 также выводит МК из сна с показом времени в течении до 30 секунд и подачей прерывистого звукового сигнала будильника. Прекращение подачи сигнала до истечения 30 секунд производится нажатием на любую кнопку. В режиме показа времени при неактивном сигнале будильника нажатием кнопки select программа переходит в режим установки времени. При этом сначала на дисплее показываются часы и CL (Clock) вместо минут. Кнопкой set производится установка часов. Следующее нажатие кнопки select приводит к показу минут и CL вместо часов. Другой кнопкой устанавливаем минуты. Третье нажатие кнопки select приводит к показу в течении 5 секунд установленного времени и записи его в микросхему RTC. При установке времени следует держать часы в положении близком к рабочему (вертикальному). Если в режиме показа времени наклонить часы в положение близкое к горизонтальному (неважно дисплеем вниз или вверх), то по нажатии кнопки select вместо текущего времени будет аналогично призводиться установка времени будильника. В этом случае вместо символов CL на дисплее будут символы AL (Alarm). Мне редко требуется пробуждаться от будильника, поэтому после его срабатывания автоматически производится блокировка будильника. Это можно легко изменить в программе МК. Деактивация будильника до его срабатывания может быть произведена установкой значения его часов в 24. Значение минут при этом может быть любым. Звуковой излучатель Q1 коммутируется транзистором T1, управляемым таймером МК на резонансной частоте излучателя 3.2 кгц.

В заключении пара видеоклипов с демонстрацией работы часов.

 

 

Литература

1. App Note 874 Using the MAX6950 and the MAX6951 LED Display Drivers with Multiplex Dual-Digit Displays


Файлы:
Архив ZIP


Все вопросы в Форум.




Как вам эта статья?

Заработало ли это устройство у вас?

44 0 2

Эти статьи вам тоже могут пригодиться: