Первые созданные автором часы с автономным питанием (Малогабаритные электронные часы с дополнительными функциями. — Радио, 2012, № 12, с. 29—32) вышли, по его мнению, не очень удачными с точки зрения размеров. В новой разработке для их уменьшения автор минимизировал число компонентов и исключил не свойственные наручным часам функции. Он использовал многоразрядный светодиодный индикатор, потому что одноразрядные индикаторы “съедают” площадь монтажной платы из-за многочисленных соединений.
В этих часах применены доступные компоненты. Отсчёт времени ведёт таймер/счётчик микроконтроллера, работающий в асинхронном режиме. Схема часов показана на рис. 1. Их основа — микроконтроллер АТmega88Р-20АU (DD1), который выводит информацию о времени на пятиразрядный светодиодный семиэлементный индикатор КИПЦ27А-5/8К (НG1) с общими катодами. В среднем разряде индикатора программно организован вывод разделителя между часами и минутами, образованного элементами А и D. Кварцевый резонатор ZQ1 стабилизирует частоту тактового генератора таймера/счётчика T2, который и ведёт счёт времени. Процессор микроконтроллера тактирован от внутреннего RC-генератора. Разъём ХР1 предназначен для соединения микроконтроллера с программатором.
Вместо микроконтроллера АТmega88Р-20АU в часах можно использовать АТmega 8А-АU (АТmega8-16АU). Придётся лишь заменить программу. Схему и топологию печатной платы менять не нужно, поскольку эти микроконтроллеры собраны в одинаковых корпусах и имеют одинаковое назначение выводов.
Печатная плата, чертёж которой приведён на рис. 2, выполнена из фольгированного с двух сторон стеклотекстолита толщиной 1,5 мм. Она рассчитана на установку резисторов и конденсаторов типоразмера 1206 для поверхностного монтажа. Кнопки SB1 — SB3 — миниатюрные для поверхностного монтажа. Разъём ХР1 с ответной частью снят с платы неисправного принтера. При отсутствии подходящего разъёма можно соединить плату с программатором припаянными проводами, удалив их после программирования.
Выводы оксидного конденсатора С5, находящегося вне платы, припаяны к её контактным площадкам. Этот конденсатор нужно подобрать с малым током утечки, чтобы не увеличивать ток потребления часов.
Перед монтажом деталей зачистите печатные проводники платы, покройте их слоем жидкого флюса и залудите. Выполните межслойные переходы отрезками лужёного провода диаметром 0,1 мм, обработайте точки пайки этих отрезков надфилем, добиваясь их минимальной высоты над поверхностью платы. Затем следует проверить все проводники на замыкание и обрыв. К тыльной стороне кнопок SВ1—SВ3 и индикатора НG1 приклейте изолирующие прокладки из бумаги.
Удалите остатки флюса спиртом или ацетоном и смонтируйте на плате все элементы, кроме индикатора. Ещё раз проверив все проводники на замыкание, установите на плату и индикатор. Фотоснимок готовой платы показан на рис. 3.
Запрограммируйте микроконтроллер. Если применён микроконтроллер ATmega88P, то коды из файла Watch88.hex следует записать в его программную память, а конфигурацию запрограммировать в соответствии с табл. 1. Коды в файле Watch8.hex предназначены для микроконтроллеров серии ATmega8. Его конфигурацию программируют согласно табл. 2. Завершив программирование, отключите программатор, подключите к плате питание и проверьте работу часов.
Плата часов помещена в пластмассовый корпус размерами 43x37x12 мм (рис. 4). Для изготовления корпуса при отсутствии листовой пластмассы толщиной 1,5…2 мм можно использовать компакт-диски, склеивая его части клеем «Кристалл». Источник питания (элемент СR2032) расположен под платой. Для его фиксации в основании корпуса вырезано отверстие диаметром 22 мм. Токосъёмные контакты изготовлены из латунного листа толщиной 0,3 мм. Снаружи элемент закрыт пластмассовым колпачком, сделанным из пробки от бутылки с растительным маслом. Окно разъёма программирования закрыто пластмассовой крышкой, закреплённой на корпусе двумя винтами-саморезами. Толкатели кнопок изготовлены из светодиодов диаметром 3 мм.
Ток потребления часов в «спящем” режиме — 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 или аналогичный.
В связи с использованием четырёхразрядного индикатора изменены разряды портов микроконтроллера, обслуживающие индикатор. Программное обеспечение переработано в соответствии с новой схемой подключения индикатора. Назначение кнопок не изменилось.
Конфигурация микроконтроллеров тоже осталась прежней (см. табл. 1 и табл. 2). Коды из файла Watch88D.hех предназначены для микроконтроллера АТmega88РА-РU, а из файла Watch88D.hех — для микроконтроллеров серии АТmega8.
Автор: Н. САЛИМОВ, г. Ревда Свердловской области
Источник: Радио №7/2016
Ошибка базы данных WordPress: [Table './meandr_base/anzpz_usermeta' is marked as crashed and last (automatic?) repair failed]
SELECT user_id, meta_key, meta_value FROM anzpz_usermeta WHERE user_id IN (3045) ORDER BY umeta_id ASC