Микроконтроллерный таймер с управлением вращением ручки

Рейтинг:  5 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда активна
 

В. НЕФЁДОВ, г. Брянск
Многие устройства на микроконтроллерах имеют узел оперативного ввода информации, необходимой для установки режимов работы прибора или при его эксплуатации. Как правило, это кнопки или клавиши. Но ограничиваться минимальным набором кнопок неудобно, а делать полную символьно-цифровую клавиатуру слишком трудоёмко и не всегда оправдано. Автор решил оснастить свой таймер другим устройством ввода — энкодером, механическим преобразователем угла поворота ручки управления в соответствующее число импульсов. Это значительно упростило ввод информации, дало возможность оперативно просматривать хранимые в памяти данные и вносить в них изменения.


Предлагаемый таймер позволяет организовать суточный цикл работы управляемого им исполнительного устройства, задавая в часах и минутах до восьми моментов его включения и выключения. Введённые значения хранятся в энергонезависимой памяти микроконтроллера прибора. Также в любой момент можно включить или выключить исполнительное устройство и вручную.
Схема таймера показана на рис. 1.
 
 Его основные элементы — микроконтроллер DD1 (ATtiny2313) и ЖКИ HG1 (WH1601A). Для обеспечения точного отсчёта времени тактовая частота микроконтроллера стабилизирована кварцевым резонатором ZQ1. Обмен информацией между микроконтроллером и ЖКИ происходит по двунаправленной четырёхразрядной шине РВ4—РВ7. Управляющие входы ЖКИ соединены с выходами РВ1—РВЗ микроконтроллера. Кнопка SB1 служит для перевода таймера в режим установки текущего времени.
Управляют прибором с помощью эн-кодера S1, аналогичного тем, что широко применяют в качестве органов управления электронной аппаратурой — музыкальными центрами, автомагнитолами, трансиверами. Суть работы этого устройства заключается в формировании при вращении его вала двух последовательностей импульсов. Они взаимно сдвинуты на половину угла поворота, соответствующего одному импульсу или интервалу между ними. Благодаря этому появляется возможность определять не только угол поворота, подсчитывая число импульсов, но и направление вращения (по взаимному расположению импульсов во времени).
При вращении вала энкодера или нажатии на вал как на кнопку, что приводит к замыканию контактов 4 и 5, микроконтроллер на 5 с устанавливает высокий логический уровень на своём выходе PD6. Это открывает транзистор VT1, замыкающий на указанное время цепь подсветки экрана ЖКИ. Благодаря диоду VD1 она работает лишь при внешнем питании таймера и не включается при его питании от батареи GB1. Нажатие на вал энкодера сопровождается коротким звуковым сигналом, подаваемым излучателем звука НА1 со встроенным генератором.
В качестве внешнего источника питания автор применил миниатюрное сетевое зарядное устройство для сотового телефона. При переменном напряжении в сети 110...240 В оно даёт на выходе постоянное напряжение 5 В с допустимым током нагрузки 400 мА. Если исполнительное устройство выключено, таймер потребляет всего 3 мА, когда оно включено, ток увеличивается до 13 мА. Включённая подсветка ЖКИ увеличивает потребляемый ток на 30 мА.
При наличии гальванической батареи GB1 отключение внешнего питания не вызывает нарушения счёта времени. Диод VD1 не позволяет батарее разряжаться через цепи подсветки ЖКИ и внешний источник питания (когда он подключён, но не работает) и уменьшает напряжение этого источника до 4,5 В.
Чертёж двусторонней печатной платы таймера и расположения элементов на ней показан на рис. 2.
 
 Плата выполнена из фольгированного с двух сторон стеклотекстолита толщиной 1,5...2 мм. Для микроконтроллера DD1 на ней установлена панель.
Все резисторы — МЛТ или С2-23. Диод 1 N4001 можно заменить любым из 1 N4002—1 N4007, а вместо оптосимистора МОС3042 установить МОС3062. Замена симистора ВТ139-600 — приборы серий ВТ136—ВТ138 на такое же (600 В) или большее напряжение.
ЖКИ может быть любого типа с одной строкой из 16 символов, оснащённый встроенным контроллером, совместимым с HD44780. Энкодер — механический с дополнительными контактами, замыкающимися при продольном нажатии на его вал, как на кнопку.
Собранную плату, индикатор, батарею и блок сетевого питания помещают в любой подходящий корпус. Симистор устанавливают на тепло-отвод из алюминиевой пластины размерами 60x20x1 мм. При этом мощность, потребляемая исполнительным устройством, может достигать 500 Вт. Внешний вид таймера в корпусе показан на рис. 3.
 
Закончив монтаж, необходимо, не устанавливая в панель микроконтроллер и не подключая ЖКИ, убедиться в наличии и правильной полярности напряжения питания на соответствующих контактах панели и на контактных площадках 1 и 2 для ЖКИ. Лишь после этого можно, предварительно выключив питание, подключить ЖКИ и установить в панель запрограммированный микроконтроллер.
При выпуске с завода микроконтроллер обычно сконфигурирован для работы с внутренним RC-генератором. Чтобы он заработал с внешним кварцевым резонатором, необходимо с помощью программатора изменить конфигурацию следующим образом: CDIV8=1, CKOUT=1, SUT1=0, SUT0=1, CKSEL3=1, CKSEL2=1, CKSEL1=0, CKSEL0=0, WDTON = 1.

 Программа микроконтроллера таймера скачать.
При включении таймера на ЖКИ выводится текущее время (часы, минуты и секунды), а также цифра от 1 до 8 (номер одного из восьми задаваемых моментов времени изменения состояния исполнительного устройства), его значение в часах и минутах и выполняемое в этот момент действие: "включить" (+) или "выключить" (-). Вращая вал энкодера, изменяют номер момента времени, а сопровождающая его информация приводится в соответствие с хранящейся в памяти микроконтроллера. Наилучшей контрастности изображения на экране ЖКИ добиваются подборкой резистора R6. А желаемую яркость его подсветки устанавливают, подбирая резистор R7.
Чтобы изменить выведенное на экран время срабатывания таймера и выполняемое при этом действие, нажмите на вал энкодера. Символ включения/выключения станет мигать. Вращая энкодер, выберите нужное значение (+ или -). Затем ещё раз нажмите на вал энкодера. Мигание признака прекратится, но начнут мигать цифры часа момента срабатывания. Вращая энкодер, установите нужное значение и новым нажатием на вал перейдите к установке минут момента срабатывания. При завершающем нажатии на вал перестанут мигать все цифры на экране, а введённое значение будет записано в энергонезависимую память микроконтроллера.
Восемь моментов времени можно задавать в произвольном порядке и без какой-либо увязки условного номера момента с временем его наступления. Сравнение всех хранящихся в памяти значений с текущим временем производится ежеминутно, при совпадении выполняется предписанное действие.
Если необходимо включить или выключить исполнительное устройство вручную, следует, вращая энкодер, вывести на экран ЖКИ надпись ON или OFF. Она показывает текущее состояние этого устройства. Нажатием на вал энкодера состояние и надпись на экране можно изменить. Но имейте в виду, что с наступлением любого из запрограммированных моментов времени состояние исполнительного устройства будет приведено в соответствие с тем, что задано для этого момента в программе.
Для установки или корректировки текущего времени необходимо нажать на кнопку SB1. Далее значения часов и минут вводят с помощью энкодера, как было описано выше. В этом режиме на экран ЖКИ кроме времени выводятся ещё две цифры — поправка к показаниям часов, обеспечивающая точность их хода. Она численно равна числу секунд, на которые без неё часы отстали бы или ушли вперёд за сутки. Значение поправки может быть установлено в пределах от -29 до +29 с.
При первом включении таймера поправку не вводите (по умолчанию она нулевая). Запишите время с точностью до секунды, а ровно через сутки подсчитайте, на сколько секунд ушли часы.
Войдя в режим установки текущего времени, установите энкодером поправку. Если часы спешили, она должна быть со знаком минус, если отставали — со знаком плюс. Поскольку значение корректирующей поправки хранится в энергонезависимой памяти микроконтроллера, оно не уничтожается при выключении питания и продолжает действовать после его включения.
От редакции. Программа микроконтроллера таймера имеется на нашем FTP-сервере по адресу <ftp://ftp.radio.ru/pub/ 2012/04/timer.zip>.
Радио №4  2012

Оставлять комментарии могут только зарегистрированные пользователи