Прежде чем переходить к разговору о таймере, необходимо дать ему хотя бы самое простое определение, например такое: таймер (реле времени) – устройство, предназначенное для коммутации (включения/выключения) внешних цепей питания или управления с нормированными интервалами времени. Автоматизация без таймеров просто невозможна. Основной нормативный отечественный документ, определяющий общие технические условия для реле времени, – ГОСТ 22557-84. Согласно данному документу, эти устройства классифицируют следующим образом:
- по числу выходных цепей с независимыми установками выдержек времени;
- по числу команд, поступающих в одну цепь на одну управляющую команду;
- по наличию регулировки выдержки времени и шкалы;
- по месту расположения регулятора выдержек времени;
- по способу монтажа на панели и способу присоединения внешних проводов;
- по виду входной воздействующей величины (команды);
- по виду исполнительной части реле.
В печати и в интернете можно найти тысячи конструкций таймеров с самой различной схемотехникой и на самой разной элементной базе. К этому можно прибавить ещё те несколько сотен промышленных таймеров (реле времени), которые представлены на рынке. Представленный в публикации двухканальный таймер найдёт своё основное применение в быту. Его можно использовать для получения эффекта присутствия человека в помещении: включать и выключать электроприборы в пустом доме (квартире). Кроме того, с его помощью можно управлять временем работы насоса для полива газона, огорода, теплицы или зарядного устройства для автомобильного аккумулятора. Двухканальный таймер увеличивает функциональные возможности приборов как минимум в два раза: в случае с насосом, например, можно независимо поливать два сектора газона.
Без преувеличения можно сказать, что применение микроконтроллеров вывело разработку подобных устройств на качественно новый уровень: можно легко скорректировать параметры и заданные функции, изменяя при этом фактически только программное обеспечение микроконтроллера. Задачу значительно упрощает использование интегрированных средств разработки, таких как Atmel Studio 6.1.
Atmel анонсировала программную среду Atmel Studio 6.1 в мае 2012 года. Инсталляционный пакет можно скачать с официального сайта компании [1] совершенно бесплатно. Среда Atmel Studio 6.1 – это современный продукт, позволяющий производить все этапы разработки программ для микроконтроллеров серий AVR и ARM. Программный пакет AVR Studio разрабатывается с 2004 года. Начиная с версии 6.0 программа сменила название на Atmel Studio. Она позволяет работать как на ассемблере, так и на C/C++.
Открыть проект в Atmel Studio 6.1 очень просто. После запуска программы нужно выбрать пункт New Project – на экране появится окно построителя. Далее следует выбрать язык проекта. Затем в поле Name: необходимо выбрать имя проекта, а в поле Location: задать путь к месту на жёстком диске, где проект будет храниться.
Для перехода к следующему этапу нужно нажать кнопку OK, затем выбрать тип микроконтроллера, задействованного в проекте (например, ATTINY2313), после чего снова нажать кнопку OK. Теперь можно набирать текст программы или копировать его из другого проекта.
Принципиальная схема двухканального таймера с обратным отсчётом времени на базе микроконтроллера семейства AVRI представлена на рисунке.
Значение задаваемого времени в устройстве – от 1 до 999 (минут или секунд) с дискретностью задания 1 (минута или секунда). Обратный отсчёт времени в минутах или секундах для каждого канала задаётся пользователем. Каналы независимые, но запуск обратного отсчёта времени происходит одновременно для двух каналов. Канал управления нагрузкой № 1 собран на твердотельном реле DA2. Нагрузка подключается к соединителю Х3. Канал управляется с вывода 11 микроконтроллера DD1. Канал управления нагрузкой № 2 собран на твердотельном реле DA1. Нагрузка подключается к соединителю Х2. Канал управляется с вывода 9 микроконтроллера DD1. С порта Р1 микроконтроллер DD1 управляет клавиатурой (кнопки S1…S8) и динамической индикацией. Динамическая индикация собрана на транзисторах VT1…VT3, цифровых 7-сегментных индикаторах HG1…HG3. Резисторы R5…R12 токоограничительные для сегментов индикаторов HG1…HG3. Коды для включения индикаторов HG1…HG3 при функционировании динамической индикации выводятся в порт PB микроконтроллера DD1. Для функционирования клавиатуры задействован вывод 7 микроконтроллера. Сетевое напряжение поступает на соединитель Х1 устройства. Напряжение питания +5 В – на соединитель Х4. Цифровая часть принципиальной схемы таймера гальванически развязана от сети.
В интерфейс устройства входят клавиатура (кнопки S1…S8), лампочки H1, Н2 и блок индикации (дисплей) из трёх цифровых 7-сегментных индикаторов HG1…HG3. Кнопки клавиатуры имеют следующее назначение:
- S1 ( D ) – увеличение значения при установке времени каналов № 1 и 2 таймера;
- S2 ( Ñ ) – уменьшение значения при установке времени каналов № 1 и 2 таймера;
- S3 (C) – кнопка включения/выключения таймера для двух каналов одновременно; при её нажатии начинается работа таймеров каналов – идёт обратный отсчёт заданного времени в обоих каналах;
- S4 (ИН1) – кнопка инвертирования нагрузки (вкл/выкл) для канала №1;
- S5 (мин/сек1) – кнопка выбора времени счёта (минуты или секунды) для канала № 1;
- S6 (ИН2) – кнопка инвертирования нагрузки (вкл/выкл) для канала № 2;
- S7 (мин/сек2) – кнопка выбора времени счёта (минуты или секунды) для канала № 2;
- S8 (Режим) – кнопка выбора режима работы таймера: канал № 1 или канал № 2 (в режиме задания времени при нажатии на данную кнопку осуществляется выбор канала; при отсчёте заданного времени нажатие на данную кнопку запускает просмотр текущих значений; в режиме «Канал № 1» задаётся время для канала № 1; после нажатия кнопки S3 (C) индицируется обратный отсчёт времени (в минутах или секундах) – как только заданное значение времени станет равно нулю, нагрузка № 1 инвертируется; первоначальное состояние нагрузки задаётся кнопкой S4 (ИН1); аналогично работает канал управления № 2).
Разряды индикации интерфейса имеют следующие назначения:
- 1-й разряд (индикатор НG3) отображает единицы минут (единицы секунд);
- 2-й разряд (индикатор НG2) отображает десятки минут (десятки секунд);
- 3-й разряд (индикатор НG1) отображает сотни минут (сотни секунд).
В режиме «Канал № 2» у индикатора НG1 горит точка h. Если отсчёт времени канала идёт в секундах, то заданное время уменьшается с каждой секундой. Если отсчёт времени канала идёт в минутах, то в обоих каналах с периодом 1 с мигает точка h у индикатора НG3.
Фактически весь алгоритм работы таймера реализован в процедуре обработки прерывания по совпадению таймера Т1. Основные фрагменты программы:
- определение времени отсчёта (минуты или секунды) для канала № 1 (начало процедуры прерывания);
- определение времени отсчёта (минуты или секунды) для канала № 2 (метка LК3);
- уменьшение времени канала № 1 (метка L4);
- увеличение времени канала № 1 (метка m0);
- уменьшение времени канала № 2 (метка LL4);
- увеличение времени канала № 2 (метка mL0);
- опрос клавиатуры (метка m1);
- вывод значения времени каналов на дисплей (метка ms1).
Фрагмент программы для кнопок уменьшения и увеличения задаваемого значения времени представлен в листинге 1, где flag1, flag2 – флаги состояний кнопок; pusk1, pusk11 – флаги уменьшения значения времени для каналов № 1 и 2 соответственно; pusk2 – флаг увеличения значения времени.
Данный фрагмент программы на ассемблере представлен в листинге 2. Flo, flo1 – регистры, где определены биты управления.
Разработанная программа на C++ занимает порядка 1,5 Кбайт памяти программ микроконтроллера. Потребление тока по каналу напряжения +5 В, не более 50 мА. В схеме, представленной на рисунке, применены конденсаторы С1, С2, С4, С5 типа К10-17а, конденсаторы С3, С6 типа К50-35. Номинальный ток предохранителей FU1, FU2 – 1,1 А. Тип – ВП1-1,1А (1,1А/250В). Держатели плавких вставок типа ДВП4-1в. Номинальный ток предохранителя можно выбрать исходя из номинального тока подключаемой нагрузки. Ответные части (розетки) к соединителям Х1…Х3 типа PHU-2. Ответная часть к соединителю Х4 – розетка типа HU-2. Исходный текст программы для двухканального таймера и hex-файл представлены в дополнительных материалах к статье на сайте журнала www.soel.ru. Для изменения параметров и функций представленного устройства (изменения программного обеспечения) текст нужно скопировать в открытый проект Atmel Studio 6.1, а затем после компиляции новый hex- файл зашить в микроконтроллер.
Литература
- www.atmel.com
- Голубцов М.С., Кириченкова А.В. Микроконтроллеры AVR: от простого к сложному. – М.: СОЛОН-Пресс, 2005. – 304 с.
Если вам понравился материал, кликните значок - вы поможете нам узнать, каким статьям и новостям следует отдавать предпочтение. Если вы хотите обсудить материал - не стесняйтесь оставлять свои комментарии : возможно, они будут полезны другим нашим читателям!