на главную
Карта сайта
English version
Вы читаете:

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

Измерительная техника
5 лет назад

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


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

Отсчёт выдержки начинают с нажатия на кнопку "Старт", при этом её нельзя удерживать нажатой более 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.

Затем включите таймер, замкните выключатели SA11 (единица времени - секунда) и SA12 (ограниченный циклический режим), а также разомкните выключатель SA9 и замкните SA10 (длительность выдержки). Выключателями SA1 -SA8 наберите код 00001010 - SA2 и SA4 разомкнуты, все остальные замкнуты. Нажмите на кнопку SB1. Должны прозвучать два коротких сигнала.
 
Далее переведите выключатели SA9 и SA10 соответственно в замкнутое и разомкнутое положение (длительность паузы). Наберите на выключателях SA1-SA8 код 00001000 (SA4 разомкнут, остальные замкнуты) и вновь нажмите на кнопку SB1. Два коротких сигнала должны прозвучать ещё раз.
 
Теперь установите выключатели SA9 и SA10 в разомкнутое положение (число циклов). Наберите на выключателях SA1-SA8 код 00000101- выключатели SA1 и SA3 разомкнуты, остальные замкнуты. Ещё раз нажмите на кнопку SB1 и прослушайте два коротких сигнала. Выключите и вновь включите питание. Таймер готов к работе с новыми значениями параметров.

Пример 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).

Автор: В. Геронда, г. Свердловск Луганской обл., Украина