Программируемый таймер

Программируемый таймерПриветствую, друзья.

Хочу представить вам мою конструкцию программируемого таймера.

Данный таймер предназначен для отсчета заданных промежутков времени.

Он может иметь как непрерывно-циклический режим работы (бесконечный цикл «включение-пауза»), так и ограниченно-циклический (заданное количество циклов «включение-пауза»), либо однократное включение — на заданное время включения.

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

Характеристики таймера

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

Таким образом, минимальный промежуток времени может быть равным 1 секунде, максимальный – 4 часам и 15 минутам.

Блок-схема программы таймераОтсчет времени начинается после нажатия кнопки старта (кнопку надо нажимать менее двух секунд).

Блок-схема программы таймера изображена на рис. 1.

Все константы – время включения, время паузы, количество рабочих циклов, величина кванта времени, режим работы также хранятся в энергонезависимой памяти, и могут быть изменены в любую сторону (перепрограммированы) посредством DIP-переключателей и отдельной кнопки программирования.

Для удобства таймер оснащен световой и звуковой сигнализацией.

Питаться таймер может как от сетевого адаптера с выходным постоянным напряжением 15-20 В, так и от аккумулятора напряжением 12 В.

Описание работы схемы таймера

Схема устройства изображена ниже. Его основа – микроконтроллер ATMega8L.

В качестве источника тактового сигнала используется внутренний RC-генератор микроконтроллера частотой 1 МГц. Для повышения точности отсчета временных интервалов используется синхронизация внутреннего таймера-счетчика Т/С2, (далее – таймера Т2) микроконтроллера от внешнего кварцевого резонатора BQ1 на частоту 32768 Гц. При коэффициенте деления 128 8-разрядный таймер Т2 переполняется каждую секунду, генерируя прерывание.

Исполнительным устройством служит реле К1, которое управляется посредством ключа на транзисторе VT1 с вывода РС5 микроконтроллера. Его контакты выведены на внешние клеммы разъема X2 и могут быть использованы для управления внешними цепями, в том числе и сетевым напряжением 220 В.

схема программируемого таймераЗвуковые сигналы подает пьезокерамический излучатель BQ2 (со встроенным звуковым генератором), который управляется выводом  РС4 микроконтроллера. Питание на микроконтроллер (+5 В) подается с выхода интегрального стабилизатора DA1. Напряжение на вход DA1 подается либо с выхода интегрального стабилизатора DA2 (+12 В), либо с аккумулятора, выбор осуществляется с помощью перемычки J1.

Светодиод HL1 зеленого цвета индицирует наличие питающего напряжения. Светодиод HL2 красного цвета служит для индикации режима работы и количества включений реле в предыдущем цикле работы. При срабатывании реле (на время включения) светодиод HL2 загорается на 1,5 с и на 0,25 с гаснет, если реле обесточено (время паузы) светодиод загорается на 0,25 с и на 1,5 с гаснет. После окончания отсчета времени светодиод HL2 гаснет. Таким образом, по характеру свечения HL2 видно, в каком состоянии находится таймер.

Конденсаторы С2 – С6 блокировочные. Диоды VD2, VD3 служат защитой от ошибочной полярности источников напряжения, диод VD1 – защита от ЭДС самоиндукции, возникающей при коммутации реле.

таблица состояния переключателейДвижковые DIP-переключатели SA1 — SA8 служат для задания величины времени включения, времени паузы и количества рабочих циклов. Такие же переключатели SB1 – SB4 служат для выбора программируемой величины — времени включения, времени паузы, режима работы, количества рабочих циклов  и величины кванта времени. Соответствие переключателей программируемой величине приведено в табл. 1.

Задавать время включения/паузы и количества рабочих циклов надо в двоичном виде, что является некоторым неудобством. Но для перевода десятичных величин в двоичные можно использовать калькулятор, встроенный в Windows. При программировании следует помнить, что нулю двоичной величины соответствует положение ON переключателей, единице – положение OFF. Программирование производится с помощью кнопки программирования S1. Старт таймера осуществляется посредством стартовой кнопки S2.

Программировать таймер нужно перед стартом отсчета времени (сразу после включения) или после окончания рабочего цикла.

В процессе отсчета времени программирование невозможно. Если начался отсчет времени, таймер нечувствителен к нажатию кнопок и изменению положения DIP-переключателей. Таймер остановится после окончания отсчета времени или исчезновении напряжения питания.

Звуковая сигнализация таймера

Звуковая индикация таймера работает следующим образом. При нажатии на кнопку старта в течение менее 2 с (переход в рабочий режим) раздается короткий звуковой сигнал длительностью 0,1 с, свидетельствующий о начале отсчета времени. Если используется ограниченно-циклический режим, то сразу по окончании отсчета времени раздается звуковой сигнал длительностью 2 с. Если кнопка старта нажата более 2 с, раздается 5 звуковых сигналов длительностью 0,1 с  — и таймер возвращается в исходный режим.

При программировании таймера процедура успешного программирования необходимой величины сопровождается двумя сигналами по 0,1 с. Если произошла ошибка (например, ошибочно задан нулевой интервал времени включения, чего быть не должно) раздается звуковой сигнал длительностью 1 с. При ошибке надо проверить положение DIP-переключателей SB1 – SB4.

При программировании микроконтроллера должны быть запрограммированы следующие фьюзы — SUT0, SUT1, CKSEL1, CKSEL2, CKSEL3, BODEN, BODLEVEL. Так как производится запись в энергонезависимую память (данные в которой могут искажаться при медленном снижении напряжения питания), то используется встроенная схема BOD (Brown-Out Detection) микроконтроллера, которая отслеживает питающее напряжение и производит сброс микроконтроллера при снижении его ниже 4 В.

Конструкция таймера

Программируемый таймер фотоКонструктивно таймер собран на плате из фольгированного стеклотекстолита толщиной 1,5 мм размерами 83×52 мм. Топология печатной платы изображена на рис. 3, расположение деталей на ней – на рис. 4. В исходном состоянии в EEPROM запрограммированы следующие значения констант: время включения – 10 с, время паузы – 10 с, количество циклов включения – 3, квант времени – одна секунда, режим работы – циклически-ограниченный.

Транзистор VT1 можно заменить на КТ3102 с любым буквенным индексом или аналогичным. В качестве светодиодов можно использовать любые современные высокоэффективные светодиоды с заметным свечением при токе 2-3 мА. Реле К1 – постоянного тока, типа JZC-22F, но можно использовать и другое с катушкой на 12 В, подходящее по току контактов и типоразмеру.

Программирование таймера

Рассмотрим примеры перепрограммирования таймера. Отметим, что при программировании следует учитывать внутреннюю логику встроенной в микроконтроллер программы. Рабочий цикл – это время включения плюс время паузы. Количество рабочих циклов может быть и нулевым – это означает, что реле включается однократно на время включения. Таким образом, чтобы включить реле N раз, надо задать N – 1 рабочих циклов, соответственно, если задать N рабочих циклов, реле включится N + 1 раз.

Пример 1. Время включения – 10 сек, время выключения – 8 сек, режим работы – циклически-ограниченный, количество рабочих циклов — 5.

Для начала запишем все числа в двоичном виде: число 10 – это 00001010, 8 – 00001000, 5 – 00000101. Включаем таймер, ставим переключатель SB3 – ON (квант времени – секунда), SB4 — ON (циклически-ограниченный режим), SB2/SB1 – ON/OFF (время включения), на переключателях SA1 – SA8 набираем число 00001010 (SA2, SA4 – OFF, все остальные – ON) и нажимаем кнопку программирования. Слышим два коротких сигнала.

Далее ставим SB2/SB1 – OFF/ON (время паузы), набираем на SA1 – SA8 число 00001000 (SA4 – OFF, остальные – ON), вновь нажимаем кнопку программирования, вновь слышим два коротких сигнала. Теперь ставим SB2/SB1 – OFF/OFF (количество рабочих циклов), набираем на SA1 – SA8 число 00000101 (SA1, SA3 – OFF, остальные – ON), вновь нажимаем кнопку программирования, слышим два коротких сигнала. Выключаем и вновь включаем питание – и таймер с новыми значениями констант готов к работе.

Пример 2. Время включения – 4 сек, время выключения – 3 сек, режим работы – циклически-непрерывный.

Число 4 – 00000100, число 3 – 00000011. Включаем таймер, ставим SB3 –ON (квант времени – секунда), SB4 – OFF (циклически-непрерывный режим), SB2/SB1 – ON/OFF (время включения), на переключателях SA1 – SA8 набираем число 00000100 (SA3 – OFF, все остальные — ON), нажимаем кнопку программирования, слышим два сигнала. Далее ставим SB2/SB1 – OFF/ON ( время паузы), набираем на SA1 – SA8 число 00000011 (SA1, SA2 – OFF, остальные – ON), нажимаем кнопку программирования, слышим два коротких сигнала. Выключаем и вновь включаем питания – и таймер с новыми значениями констант готов к работе.

Пример 3. Время включения – 20 мин однократно.

Число 20 – 00010100. Включаем таймер, ставим SB3 – OFF (квант времени — минута), SB4 – ON (циклически ограниченный режим), SB2/SB1 – ON/OFF (время включения), на переключателях SA1 – SA8 набираем 00010100 (SA3, SA5 – OFF, остальные – ON), нажимаем кнопку программирования, слышим два коротких сигнала. Ставим SB2/SB1 – OFF/OFF (количество рабочих циклов), набираем на SA1 – SA8 число 00000000 (все переключатели – ON), нажимаем кнопку программирования, слышим два коротких сигнала. Выключаем и вновь включаем питание – таймер с новыми значениями констант готов к работе.

Архив с описанием, топологией платы, программой и прошивкой можно скачать здесь.

До встречи на блоге!


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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

© 2019 Компьютер и жизнь // Дизайн и поддержка: GoodwinPress.ru