Часы будильник с ИК ДУ

Часы будильник термометр и ИК-ДУ

моя статья для журнала радио.
Предлагаемое вниманию читателей устройство выполнено на современной элементной базе и отличается от ранее опубликованных в журнале конструкций расширенными возможностями и применением для управления им пульта дистанционного управления на ИК лучах.

 

Описываемый прибор предназначен для индикации текущего времени, подачи звуковых сигналов в заданное время и индикации температуры в двух точках (в помещении и на улице) в интервале -55…+99°С с точностью ±1СС. Время и температура отображаются поочередно (в течение 10, 1 и 2 с соответственно). Установку показаний часов, времени срабатывания будильника, отключение будильника, гашение и зажигание индикатора производят с ИК пульта дистанционного управления (ДУ).
Будильник подает звуковые сигналы с паузой 10 с: вначале два коротких (примерно по 0,1 с) одиночных, затем столько же сдвоенных {с паузой 0,1 с), а после них — два строенных (с такой же паузой). По истечении минуты строенные сигналы подаются каждую секунду до тех пор, пока будильник не будет отключен (такой «алгоритм» удобен, если в комнате спит ребенок). Имеется функция Snooze (повторение сигнала через определенное время), позволяющая еще немного поспать после первой подачи сигналов. Если индикатор погашен (например, в ночное время, чтобы не беспокоить детей при засыпании), в момент срабатывания будильника он зажигается и до отключения или перехода в режим Snooze показывает текущее время. Предусмотрены короткий звуковой отклик на нажатие кнопок пульта, индикация (светодиодом) прохождения команд с пульта, резервное питание при пропадании напряжения в сети {в этом случае будильник подает непрерывный сигнал).


Принципиальная схема устройства изображена на рис. 1 Его основа — — микроконтроллер DD2 АТ89С4051 . Он управляет работой всех узлов В его составе имеется энергонезависимая память программ (4 Кбайт), ОЗУ (128 байт), два таймера, система прерываний и др.
Для надежного запуска и защиты микроконтроллера от сбоев по питанию применена микросхема КР1171СП47 (DA1). Она удерживает на своем выходе (выв. 3) низкий уровень при напряжении питания менее 4,7 В. Конденсатор С6 задерживает переход в состояние лог. 0 (т. е. запуска микроконтроллера) после того, как напряжение питания станет выше порогового уровня. В крайнем случае эту микросхему можно не устанавливать, применив стандартную схему сброса, рекомендуемую фирмой Atmel. Однако при этом возможны сбои устройства при «провалах» в питании.
Табло устройства состоит из пяти светодиодных цифровых индикаторов SA08-11GWA фирмы Kingbright. Индикация — статическая. Для снижения яркости свечения в цепь питания индикаторов включены диоды VD5 и VD6. При отображении времени HG1 и HG2 показывают соответственно десятки и единицы часов, HG3 — тире (—), HG4 и HG5 десятки и единицы минут (например. 22—11), в режиме измерения температуры HG1 индицирует ее знак (только для отрицательных значений), a HG2, HG3 и HG4, HG5 — соответственно численное значение и единицу измерения (например, -18°С для наружного датчика и 23°.С для комнатного, о чем свидетельствует символ «.» в четвертом разряде).

Для управления узлом индикации использовано всего три вывода микроконтроллера: Р1 2 (14) — для передачи данных; Р1.3 (15) — для стробирования каждого бита, выставленного на Р1.2; Р1.4 (16) — для вывода загруженных в DD3—DD7 данных на их выходы. Микросхема 74НС595 представляет собой восьмибитный регистр с последовательным входом и параллельным выходом с защелкой Это позволяет сначала загрузить в него данные, а только потом подать их на выход. Выходы можно переводить в третье состояние. Каждый вывод может отдавать ток до 35 мА. В качестве часов применена микросхема PCF8583, что позволило забыть о том, что время может сбиваться при отсутствии питания (точность хода зависит практически только от кварцевого резонатора ZQ1 на 32768 Гц). В PCF8583 есть статическая память, которая используется для определения первого включения часов (чтобы подготовить и микроконтроллер и сами часы к нормальному функционированию) и аппаратный будильник При совпадении установленного времени с текущим на выводе INT (7) появляется низкий логический уровень. В результате замыкается цепь питания электромагнитного излучателя НА1, а на вывод РЗ.З (7) микроконтроллера DD2 подается сигнал прерывания. Далее программно выключается сигнал с вывода INI и управление излучателем переходит к микроконтроллеру (через электронный ключ на полевых транзисторах VT1, VT2). Управляются часы по шине I2С. организованной программно (в микроконтроллере она отсутствует).
Для подачи звуковых сигналов применен электромагнитный излучатель НСМ1606Х фирмы JL World со встроенным генератором, работающим на частоте около 2200 Гц.
Baiapefl GB1 служит для питания микросхемы часов и звукоизлучателья при пропадании напряжения в сети. Как упоминалось, будильник в этом случае подает непрерывный сигнал, который можно выключить только нажатием кнопки SB I.
Для приема сигналов управления пульта ДУ применен интегральный приемник ИК диапазона SFH506-36 фирмы Siemens Эта микросхема весьма чувствительна к помехам по цепи питания, поэтому в нее включен фильтр VD4C8C9.
Питается устройство от стабилизированного преобразователя напряжения на основе микросхемы МС34063 (отечественный аналог КР1156ЕУ5).

Принципиальная схема ИК пульта ДУ показана на рис. 2 Выполнен он на базе малогабаритного калькулятора китайского производства в форме сотового телефона (использованы его корпус, клавиатура и батарея питания, состоящая из двух элементов 389А). В качестве передатчика применена микросхема SAA3010 (аналог — INA3010D ПО ‘Интеграл») в корпусе SOIC. Эта микросхема работает в системе ИК ДУ RC-5, разработанной фирмой Philips для управления бытовой аппаратурой и получившей широкое распространение (используется во многих телевизорах, в том числе и выпускаемых, например, ПО «Горизонт»). В режиме ожидания SAA3010 потребляет незначительный ток, что делает эксплуатацию пульта очень удобной — нет необходимости в отдельном выключателе питания. Микросхема переходит в активное состояние при нажатии любой кнопки и возвращается в режим микропотребления при ее отпускании. Используемый номер системы кода RC-5 — 0 (для управления телевизором). При необходимости, например, чтобы не мешать работе с телевизором, если в нем используется тот же стандарт, нетрудно перейти к другой кодировочной таблице. Допустимо применение и готового пульта ДУ от какого-либо бытового аппарата, если позаботиться о перекодировке команд .
В качестве выносных датчиков температуры применены микросхемы DS1621 фирмы DALLAS. Хороши они тем, что используют для обмена интерфейс I2С. который у нас уже сформирован программно. Это значит, что их можно подключить к тем же выводам микроконтроллера, что и часы. Погрешность измерений всецело определяется датчиками и не превышает ±0,5 С, а точность индикации — 1С. Несколько слов о расположении датчиков. Внешний необходимо укрыть от прямых солнечных лучей и от потоков воздуха комнатной температуры, проникающих сквозь щели в рамах, а внутренний расположить так, чтобы он был максимально удален от нагревающихся предметов (батареи отопления, светильников и т. п.). Внешний датчик желательно герметизировать, чтобы избежать коррозии печатной платы и т. д. (автор использовал силиконовый герметик). Теплопроводность от этого снижается, но при вяло текущих процессах, таких как изменение атмосферной температуры, это вполне допустимо.
Назначение кнопок пульта ДУ:
«TS» — установка времени. После ее нажатия вводят время в 24-часовом формате с незначащими нулями, т. е. если в данный момент восемь тридцать утра, то 08 — 30. Убедившись, что время введено правильно, нажимают любую кнопку, и устройство переходит в режим часов.
«BS» — установка времени срабатывания будильника. Процедура, аналогичная установке времени.
«OFF» отключение будильника. Кнопка SB2 в корпусе часов выполняет такую же функцию.
«LED» — отключение/включение индикаторов.
Нажатие любой другой кнопки во время подачи сигнала будильником переводит его в режим Snooze.
Внешний вид пульта ДУ и вид на монтаж основного блока устройства показаны на рис. 3.
Программа написана на языке С. Это предоставляет возможности для дальнейшей модернизации. Программа разрабатывалась и компилировалась в интегрированной среде Keil mVision2 V2.36. Ассемблер — А51 версии v7.04, компилятор — С V7.04, линковщик — BL51 версии V5.02. Файл проекта — termo.Uv2. Управляющая программа записана в контроллер с помощью программатора TURBO. Перед программированием нужно проверить соответствие монтажа принципиальной схеме устройства. Правильно собранная конструкция в налаживании не нуждается. Исходный текст и прошивка.