Предлагаемый таймер предназначен для отсчёта заданных промежутков времени. Он может работать как в непрерывном циклическом режиме (бесконечное повторение цикла выдержка-пауза), так и ограниченном циклическом (заданное число циклов выдержка-пауза). Возможна и однократная выдержка заданной продолжительности. Длительность выдержки, длительность паузы и число циклов задают независимо.
Отсчёт выдержки начинают с нажатия на кнопку "Старт", при этом её нельзя удерживать нажатой более 2 с. Длительности выдержки и паузы могут быть заданы в пределах от 1 до 255 единиц отсчёта времени (секунд или минут). Минимальный отсчитываемый интервал времени равен 1 с, максимальный - 4 ч 15 мин. Число циклов выдержка/пауза может быть задано от 0 (однократная выдержка) до 255 либо неограниченным.
Все установленные параметры работы таймера хранятся в EEPROM его микроконтроллера и могут быть изменены в любую сторону с помощью DIP-переключателей и отдельной кнопки записи в EEPROM.
Для удобства таймер оснащён световой и звуковой сигнализацией. Питать его можно от сетевого адаптера с выходным постоянным напряжением 15...20 В или от аккумуляторной батареи напряжением 12 В.
Схема таймера изображена на рис. 1. Его основа - микроконтроллер ATmega8L-8PU [1, 2]. Источник тактового сигнала - внутренний RC-генератор микроконтроллера частотой 1 МГц. Для повышения точности отсчёта интервалов времени применено тактирование внутреннего таймера-счётчика T/C2 микроконтроллера от встроенного генератора с внешним кварцевым резонатором ZQ1 частотой 32768 Гц. При включённом предварительном делителе частоты на 128 восьмиразрядный таймер T/C2 переполняется каждую секунду и генерирует запрос прерывания.
Рис. 1. Схема таймера
Исполнительным устройством таймера служит реле K1, которым управляет сигнал с вывода PC5 микроконтроллера через ключ на транзисторе VT1.
Контакты реле выведены на зажимную колодку XT 1 и могут управлять внешними устройствами, в том числе питающимися от сети ~230 В.
Звуковые сигналы подаёт электромагнитный излучатель звука HA1 (со встроенным звуковым генератором), которым управляет сигнал с выхода PC4 микроконтроллера.
Напряжение питания +5 В подано на микроконтроллер с выхода интегрального стабилизатора DA2, на вход которого напряжение + 12 В поступает либо с гнез-даXS1 через интегральный стабилизатор DA1, либо от аккумуляторной батареи, подключённой к контактам 2 и 1 зажимной колодки XT1. Источник питания выбирают перестановкой перемычки S1.
Светодиод HL1 зелёного свечения сигнализирует о наличии питающего напряжения. По характеру свечения светодиода HL2 красного цвета видно, в каком состоянии находится таймер. Во время отсчёта выдержки программа включает светодиод HL2 на 1,5 с и выключает его на 0,25 с, во время отсчёта паузы - наоборот. По завершении рабочего цикла светодиод HL2 гаснет.
DIP-выключатели SA1-SA8 предназначены для задания длительности выдержки, длительности паузы и числа циклов выдержка-пауза. Такими же выключателями SA9-SA12 выбирают, согласно таблице, задаваемый параметр. В этой таблице указаны также адреса ячеек EEPROM микроконтроллера, хранящих соответствующие параметры.
Таблица
Состояние выключателя | Параметр | Ячейка EEPROM | |||
SA9 | SA10 | SA11 | SA12 | ||
3 | 3 | X | X | Запрещённая комбинация | - |
Р | 3 | X | X | Длительность выдержки | 001 |
3 | Р | X | X | Длительность паузы | 002 |
р | Р | X | X | Число циклов | 003 |
X | X | 3 | X | Счёт времени в секундах | 004 |
X | X | р | X | Счёт времени в минутах | |
X | X | X | 3 | Огр. циклический режим | 005 |
X | X | X | Р | Непр. циклический режим |
3 - замкнутое (ON), Р - разомкнутое (OFF), X - произвольное
Параметры набирают на DIP-выключателях SA1-SA8 в двоичном формате, что доставляет некоторые неудобства. Для перевода десятичных чисел в двоичные можно воспользоваться "Калькулятором" Windows. Чтобы записать набранную на DIP-выключателях информацию в EEPROM, достаточно нажать на кнопку SB1. Стартует таймер при нажатии на кнопку SB2.
Задавать параметры следует до начала отсчёта времени сразу после включения питания или после окончания предыдущего рабочего цикла. В процессе счёта изменить их невозможно. Если таймер запущен, он нечувствителен к нажатиям на кнопки и изменениям положения DIP-выключателей. Остановится таймер лишь по завершении заданного числа циклов отсчёта времени или при выключении питания.
Диоды VD1, VD3 защищают прибор от ошибочной полярности подключения источников питания, диод VD2 - защита от ЭДС самоиндукции, возникающей при коммутации обмотки реле.
Звуковая сигнализация таймера работает следующим образом. При удержании кнопки SB2 нажатой менее 2 с раздаётся короткий (0,1 с) звуковой сигнал, означающий, что отсчёт времени начался. Если используется ограниченный циклический режим, то сразу по завершении заданного числа циклов прозвучит сигнал длительностью 2 с. Если кнопку SB2 удерживать нажатой более 2 с, прозвучат пять сигналов длительностью 0,1 с, после чего таймер вернётся в исходное состояние.
Об успешной записи установленного параметра в EEPROM сигнализируют два звуковых сигнала длительностью по 0,1 с. Если произошла ошибка (например, ошибочно задана нулевая продолжительность выдержки, чего быть не должно), прозвучит сигнал длительностью 1 с. Услышав его, следует проверить положение DIP-выключателей SA1-SA8.
Таймер собран на плате из фольгированного стеклотекстолита толщиной 1,5 мм размерами 84x55 мм, чертёж которой показан на рис. 2. Транзистор 2SC945 можно заменить на КТ3102 с любым буквенным индексом или другой c аналогичными параметрами. Светодиоды можно использовать любые повышенной яркости, свечение которых хорошо заметно уже при токе 2...3 мА. Реле K1 - JZC-22F, но можно использовать и другое с катушкой на 12 В, подходящее по коммутируемому напряжению и току и по размерам.
Рис. 2. Чертёж печатной платы таймера
Рис. 3. Плата в сборе
Коды из прилагаемого к статье файла CL-TIMER.hex должны быть загружены в программную память микроконтроллера. Разряды его конфигурации SUT0, SUT1, CKSEL1, CKSEL2, CKSEL3, BODEN, BODLEVEL должны быть запрограммированы (установлены в состояние 0). Последние два из перечисленных разрядов включают в микроконтроллере внутренний детектор провалов напряжения питания и устанавливают порог его срабатывания равным 4 В. Это предотвращает сбои записи в EEPROM при пониженном напряжении питания.
Перед первым запуском таймера в EEPROM микроконтроллера из файла CL-TIMER.eep записывают следующие параметры: длительность выдержки - 10 с, длительность паузы - 10 с, число циклов - 3, режим работы - ограниченный циклический. В дальнейшем их можно будет изменить.
Задавая параметры, следует учитывать, что рабочий цикл таймера - сумма длительности выдержки и длительности паузы. Число циклов может быть и нулевым. Это означает, что реле K1 однократно включится на заданное время выдержки. Чтобы включить реле N раз, нужно задать N-1 рабочих циклов. Вот несколько примеров установки параметров.
Пример 1. Длительность выдержки - 10 с, длительность паузы - 8 с, режим работы - ограниченный циклический, число циклов - 5.
Начните с перевода всех чисел в двоичную систему счисления:
1010 = 000010102,
810 = 00 00 1 0002,
510 = 000001012.
Пример 2. Длительность выдержки - 4 с, длительность паузы - 3 с, непрерывный циклический режим. 410 = 000001002, 310 = 000000112.
Включите таймер. Замкните выключатель SA11 и разомкните SA12 (непрерывный циклический режим). Разомкните SA9 и замкните SA10 (длительность выдержки). На выключателях SA1 -SA8 наберите код 00000100 - SA3 разомкнут, остальные замкнуты. Нажмите на кнопку SB1, прослушайте два коротких сигнала.
Далее замкните выключатель SA9 и разомкните SA10 (длительность паузы). Наберите на выключателях SA1-SA8 код 00000011 - SA1 и SA2 разомкнуты, остальные замкнуты. Нажмите на кнопку SB1. Должны прозвучать два коротких сигнала. Выключите и вновь включите питание. Таймер готов к работе с новыми значениями параметров.
Пример 3. Выдержка - 20 мин, однократно. 2010 = 000101002.
Включив таймер, разомкните выключатель SA11 (единица отсчёта времени - минута) и замкните SA12 (ограниченный циклический режим), разомкните SA9 и замкните SA10 (длительность выдержки). На выключателях SA1 -SA8 наберите код 00010100 - SA3 и SA5 разомкнуты, остальные замкнуты. Нажмите на кнопку SB1. Должны прозвучать два коротких сигнала.
Разомкните выключатели SA9 и SA10 (число циклов). Наберите на выключателях SA1-SA8 код 00000000 (все выключатели замкнуты). Нажмите на кнопку SA1 и прослушайте два коротких сигнала. Выключите и вновь включите питание. Таймер готов к работе с новыми значениями параметров.
Программа микроконтроллера имеется здесь.
Литература
1. Евстифеев А. В. Микроконтроллеры AVR семейств Tiny и Mega фирмы ATMEL. - М.: Додэка-XXI, 2008.
2. ATMega8, ATMega8L 8-bit AVR with 8K Bytes In-System Programmable Flash. - URL: http://ww1 .microchip.com/downloads/en/ DeviceDoc/Atmel-2486-8 - b it - AVR -microcontroller-ATmega8_L_datasheet.pdf (10.05.2018).
Автор: В. Геронда, г. Свердловск Луганской обл., Украина