Микроконтроллерные наручные часы

Первые созданные автором часы с автономным питанием (Малогабаритные электронные часы с дополнительными функ­циями. — Радио, 2012, № 12, с. 29—32) вышли, по его мнению, не очень удачными с точки зрения размеров. В новой разработке для их уменьшения автор минимизировал число компонентов и исключил не свойственные наручным часам функции. Он исполь­зовал многоразрядный светодиодный индикатор, потому что одноразрядные индикаторысъедают” площадь монтажной платы из-за многочисленных соединений.

В этих часах применены доступные компоненты. Отсчёт времени ведёт таймер/счётчик микроконтроллера, работающий в асинхронном режиме. Схема часов показана на рис. 1. Их ос­нова — микроконтроллер АТmega88Р-20АU (DD1), который выводит информацию о времени на пятиразрядный светодиодный семиэлементный инди­катор КИПЦ27А-5/8К (НG1) с общими катодами. В среднем разряде индика­тора программно организован вывод разделителя между часами и минутами, образованного элементами А и D. Квар­цевый резонатор ZQ1 стабилизирует частоту тактового генератора тайме­ра/счётчика T2, который и ведёт счёт времени. Процессор микроконтролле­ра тактирован от внутреннего RC-генератора. Разъём ХР1 предназначен для соединения микроконтроллера с про­грамматором.

рис1

Рис.1

Вместо микроконтроллера АТmega88Р-20АU в часах можно использовать АТmega 8А-АU (АТmega8-16АU). Придёт­ся лишь заменить программу. Схему и топологию печатной платы менять не нужно, поскольку эти микроконтролле­ры собраны в одинаковых корпусах и имеют одинаковое назначение выводов.

Печатная плата, чертёж которой при­ведён на рис. 2, выполнена из фольгированного с двух сторон стеклотексто­лита толщиной 1,5 мм. Она рассчитана на установку резисторов и конденсато­ров типоразмера 1206 для поверхност­ного монтажа. Кнопки SB1 — SB3 — миниатюрные для поверхностного мон­тажа. Разъём ХР1 с ответной частью снят с платы неисправного принтера. При отсутствии подходящего разъёма можно соединить плату с программато­ром припаянными проводами, удалив их после программирования.

рис1

Рис.2

Выводы оксидного конденсатора С5, находящегося вне платы, припаяны к её контактным площадкам. Этот конденса­тор нужно подобрать с малым током утечки, чтобы не увеличивать ток потребления часов.

Перед монтажом деталей зачистите печатные проводники платы, покройте их слоем жидкого флюса и залудите. Выполните межслойные переходы от­резками лужёного провода диаметром 0,1 мм, обработайте точки пайки этих отрезков надфилем, добиваясь их ми­нимальной высоты над поверхностью платы. Затем следует проверить все проводники на замыкание и обрыв. К тыльной стороне кнопок SВ1—SВ3 и индикатора НG1 приклейте изолирую­щие прокладки из бумаги.

Удалите остатки флюса спиртом или ацетоном и смонтируйте на плате все элементы, кроме индикатора. Ещё раз проверив все проводники на замыка­ние, установите на плату и индикатор. Фотоснимок готовой платы показан на рис. 3.

Безымянный

Рис.3

Запрограммируйте микроконтрол­лер. Если применён микроконтроллер ATmega88P, то коды из файла Watch88.hex следует записать в его программную память, а конфигурацию запрограммировать в соответствии с табл. 1. Коды в файле Watch8.hex предназначены для микроконтролле­ров серии ATmega8. Его конфигурацию программируют согласно табл. 2. За­вершив программирование, отключите программатор, подключите к плате питание и проверьте работу часов.

Безымянный

Таблица 1

Безымянный

Таблица 2

Плата часов помещена в пластмас­совый корпус размерами 43x37x12 мм (рис. 4). Для изготовления корпуса при отсутствии листовой пластмассы тол­щиной 1,5...2 мм можно использовать компакт-диски, склеивая его части кле­ем "Кристалл". Источник питания (эле­мент СR2032) расположен под платой. Для его фиксации в основании корпуса вырезано отверстие диаметром 22 мм. Токосъёмные контакты изготовлены из латунного листа толщиной 0,3 мм. Сна­ружи элемент закрыт пластмассовым колпачком, сделанным из пробки от бутылки с растительным маслом. Окно разъёма программирования закрыто пластмассовой крышкой, закреплённой на корпусе двумя винтами-самореза­ми. Толкатели кнопок изготовлены из светодиодов диаметром 3 мм.

Безымянный

Рис.4

Ток потребления часов в "спящем” режиме — 2 мкА с микроконтроллером ATmega88P-20AU и 8,5 мкА с микро­контроллером ATmega8. При работаю­щем индикаторе потребляемый ток возрастает до 6,5 мА. Работа часов проверена при снижении напряжения питания до 1,9 В (использовались час­тично разряженные щелочные элемен­ты "Energizer”). Напряжение элемента CR2032 снижается до этого значения лишь при полной разрядке.

Изготовитель элемента CR2032 ука­зывает его ёмкость 210...240 мА·ч при разрядке стабильным током. Однако при разрядке пульсирующим током она существенно меньше. Поэтому продол­жительность работы часов без замены элемента питания можно определить только опытным путём.

Практически всё время с момента включения питания микроконтроллер часов работает в экономичном режиме энергопотребления. Его внутренний тактовый генератор в этом режиме выключен, поэтому все тактируемые от него системы микроконтроллера не функционируют. Работают лишь подси­стема обработки внешних прерываний и таймер/счётчик Т2 в асинхронном ре­жиме. Прерывания программа исполь­зует для вывода текущего времени на индикатор и входа в режим установки времени. Таймер/счётчик Т2 ведёт от­счёт времени. Каждую секунду микроконтроллер "просыпается" и записыва­ет в регистры часов новые значения, после чего вновь "засыпает".

Для обслуживания индикатора ис­пользован таймер/счётчик ТО, а для обслуживания кнопок управления — таймер/счётчик Т1. Два разряда порта D заняты сигналами внешних запросов прерывания, поэтому для коммутации элементов индикатора только с помо­щью выводов, оставшихся незанятыми, применён нестандартный способ. Для каждой цифры написана подпрограм­ма, содержащая информацию о вклю­чённых и выключенных элементах инди­катора при её выводе.

Отсчёт времени идёт в двух регист­рах. В регистре минут — до 59, а в ре­гистре часов — до 23. Содержимое этих регистров после преобразования в двоично-десятичный формат програм­ма выводит на индикатор.

Индикатор включают нажатием на кнопку SB3. Дополнительная функция этой кнопки — изменение содержимого регистра часов в режиме установки вре­мени. Продолжительность работы ин­дикатора после нажатия на кнопку зада­на в программе константой Time Disp, равной 250, и составляет 3,84 с. При этом индикатор фактически потребляет ток лишь половину этого времени.

Кнопка SВ2 — включение режима установки времени, а после входа в этот режим — изменение содержимого регистра минут. Содержимое регистров времени можно изменять только в сто­рону увеличения, а по достижении пре­дела изменение продолжается с нуля.

Кнопка SВ1 — выход из режима уста­новки времени. При её нажатии обну­ляется регистр секунд, а микроконтрол­лер "засыпает". Это позволяет синхро­низировать часы с контрольными. Кноп­ка активна только при выходе из режима установки времени.

Схема второго варианта часов пока­зана на рис. 5, их печатная плата изоб­ражена на рис. 6, а схема расположе­ния элементов на ней — на рис. 7. В этом варианте использованы четырёх­разрядный индикатор с общими анода­ми HSN2842S, угловые кнопки, микро­контроллер в корпусе DIР28. Примене­ние микроконтроллера в таком корпусе облегчает монтаж, при желании на пла­те для него можно установить панель. Исключён разъём для программирова­ния, но имеются контактные площадки, к которым можно припаять провода, идущие к программатору. Резисторы и конденсаторы (за исключением оксид­ного С5) — типоразмера 0805 для по­верхностного монтажа, резистор R1 - типоразмера 1206. Для элемента G1 на плате установлен батарейный отсек СН25-2032 или аналогичный.

Безымянный

Рис.5

Безымянный

Рис. 6

Безымянный

Рис.7

В связи с использованием четырёх­разрядного индикатора изменены раз­ряды портов микроконтроллера, обслу­живающие индикатор. Программное обеспечение переработано в соответст­вии с новой схемой подключения инди­катора. Назначение кнопок не измени­лось.

Конфигурация микроконтроллеров тоже осталась прежней (см. табл. 1 и табл. 2). Коды из файла Watch88D.hех предназначены для микроконтролле­ра АТmega88РА-РU, а из файла Watch88D.hех — для микроконтроллеров серии АТmega8.

Скачать архив

Автор: Н. САЛИМОВ, г. Ревда Свердловской области
Источник: Радио №7/2016

Постоянная ссылка на это сообщение: http://meandr.org/archives/33794

1 комментарий

  1. Все таки хочется что бы в часах бал календарь.
    Почему то авторы проектов часов делают их или слишком навороченными, или просто часы.
    Может быть вставите в программу календарь.

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