Схема таймера с включением нагрузки на микроконтроллере. Конкурс на лучшую конструкцию на микроконтроллерах

Картинка от Novelty Kitchen Timers


В радиолюбительской практике частенько необходим таймер: засветка фоторезиста, выдержка после накатки, после засветки, варка пельменей, яиц (у меня частенько вся вода выкипает). Варианты из Google мне не подошли. Мне захотелось сделать таймер, в котором было бы 12 кнопок и 4-разрядный LED индикатор - я использовал красный, чтобы не засвечивать фоторезист. Для данной конструкции я применил давно лежащий в закромах микроконтроллер ATMEL AT89C2051. Питание от одного аккумулятора.

И вот конструкция готова. Встречайте: брутальный таймер радиолюбителя с временем выдержки от 1 секунды до 100 минут и шагом в 1 секунду или от 1 минуты до 100 часов с шагом 1 минута.

Около 10 лет назад я разработал таймер на ЖКИ и дешевом микроконтроллере PIC12C508 (журнал Радио № 5, 2004 г.). Всем он хорош, с тех пор даже батарейки не разу не менял. Разве что подсветки нет и кнопки в той конструкции были тактовые, заедают. И решил я не апгрейдить старую разработку, а сделать новую.

В программе используется прерывание от TIMER0, который включён в режим «2», т.е. в режим 8-битного таймера с автозагрузкой. В прерывании таймера, выключаются катоды индикатора и засылаются данные в последовательный порт, для вывода очередного разряда индикатора.
После того как передача будет окончена, вызывается прерывание последовательного порта, в котором включается соответствующий катод индикатора и происходит опрос клавиатуры.

Программа занимает чуть больше одного килобайта, написана в среде KEIL. Исходный текст и файл прошивки прилагается.

Если при включении таймера держать нажатой кнопку "1", то таймер моргнёт двумя крайними точками и включится в режим отсчёта времени в часах и минутах. Т.е. установка времени 01.00 уже будет означать 1час. Надо только учитывать что при питании от одного аккумулятора, его заряда хватит максимум на 10 часов, из этого следует что для длительных выдержек надо питать таймер или от более мощных аккумуляторов или от сети.

Так как моя конструкция была собрана на кнопках с датчиками Холла, то схему подключения механических кнопок и индикатора с общим анодом я не проверял. Если возникнут проблемы при реализации, пишите, помогу.

Фото собранного таймера.


Вид сзади с вырезом для аккумулятора, данный корпус без батарейного отсека.

Видео

Небольшое видео, на нём индикатор всячески перемигивает - это биение развертки фотоаппарата и динамической индикации, глазами это не видно, время обновления индикатора 20 ms.
Видео с таким разрешением, потому что дом загородом и Интернет 3G.

Файлы

Исходный текст в среде KEIL и файл прошивки для индикаторов с общим катодом и общим анодом.
🕗 05/04/14 ⚖️ 7,15 Kb ⇣ 27 Здравствуй, читатель! Меня зовут Игорь, мне 45, я сибиряк и заядлый электронщик-любитель. Я придумал, создал и содержу этот замечательный сайт с 2006 года.
Уже более 10 лет наш журнал существует только на мои средства.

Хорош! Халява кончилась. Хочешь файлы и полезные статьи - помоги мне!

В предыдущей статье — я написал, что это последняя разработка такого устройства с использование семисегментных светодиодных индикаторов, но оказалось, что я поспешил. Дело в том, что в этой конструкции используется лишь 40% памяти микроконтроллера, да и еще остался один незадействованный вывод порта микроконтроллера (кроме вывода RESET). Поэтому было принято решение исправить эту несправедливость по отношению к МК и добавить еще один канал управления нагрузками. После проведенной работы память МК используется на 99% и задействованы все выводы МК. Полное название измененной конструкции:
«Двухканальный термометр, двухканальный термостат (терморегулятор) с возможностью работы по времени, одноканальный таймер реального времени на микроконтроллере ATmega8 и датчиках температуры DS18B20»

Описание и характеристики двухканального термометра, термостата (терморегулятора), одноканального таймера реального времени
на ATmega8 и DS18B20

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

Таймер реального времени

В конструкцию введен таймер реального времени , который позволяет управлять своей, третьей нагрузкой, в режиме реального времени в течении 24 часов и позволяет в течении суток задать два временных интервала управления нагрузкой. Также таймер позволяет задать в течении суток для каждого канала термостатирования (терморегулирования) по одному временному интервалу управления нагрузками.
Что я подразумеваю под таймером реального времени. По сути, это внутренние часы с дискретностью 10 минут. При первоначальной настройки устройства устанавливается реальное текущее время с точностью до 10 минут, а дальше таймер отсчитывает 24 часовые интервалы с шагом в 10 минут как обыкновенные часы.

Дискретность отсчета временных интервалов 10 минут принята по двум причинам:
— удобство вывода информации на трехразрядном индикаторе, к примеру 22 часа 40 минут — 22,4
— управление нагрузкой с точностью до 10 минут вполне достаточна для большинства задач (реально точность составляет 5 минут — если вам надо включить нагрузку в 7 часов 35 минут, то можно установить или 7,4 или 7,3)

Введение таймера немного изменило алгоритм работы с устройством (об алгоритме работы я расскажу ниже). Теперь нажатием кнопки «Выбор» можно попасть в два меню:
— меню установки пределов температур работы термостатов и временных интервалов работы термостатов, временных интервалов управления нагрузкой по таймеру
— меню коррекции хода часов и установки текущего времени.
Так как МК работает от внутреннего RC-генератора (8 МГц), который не отличается стабильностью и зависит как от температуры МК, так и питающего напряжения, функция коррекции хода часов позволяет подстроить точность хода для конкретных условий. А функция установки текущего времени позволяет установить текущее реальное время при первоначальной настройке или уточнять его при сильном отличии от реального времени.
Показания таймера при работе устройства не высвечиваются, узнать «который час» можно только при входе в режим установки текущего времени.

Управление нагрузками по таймеру не осуществляется (выключено), если время включения и выключения установлены в ноль. В принципе, управление нагрузками по таймеру не осуществляется при равенстве времени включения и выключения.

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

Схема трехканального термометра, термостата, таймера на ATmega8

Схема устройства создана в программе и в принципе не отличается от схемы двухканального термостата (добавлен третий канал управления нагрузкой и изменены, для разнообразия, схемы управления нагрузками):


Так-как в схеме применены «выводные» детали, то для удобства размещения конструкции в подходящем корпусе схема разделена на две части:
— Блок индикации — индикаторы и кнопки
— Блок управления — все остальное
Надо было бы вывести в блок индикации и светодиоды, которые сигнализируют о включенных каналах, но это можно сделать и самостоятельно при разводке платы (добавить три пары контактных площадок для светодиодов и соединить их с блоком управления проводами).

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

Основа устройства — микроконтроллер ATmega8 с тактовой частотой 8 МГц от встроенного генератора с внутренней RC-цепочкой.
Для подстройки частоты внутреннего генератора необходимо при программирование МК записать в EEPROM-память по нулевому адресу значение калибровочной ячейки для тактовой частоты 8 МГц. В выложенном ниже НЕХ-файле EEPROM-памяти по умолчанию записано число $В1 (В1) — среднее значение калибровочных ячеек 5 проверенных микроконтроллеров.
Кроме того, для правильной работы таймера реального времени, а работает он по прерываниям от таймера/счетчика Т1 при равенстве счетного регистра и регистра сравнения OCR1A, при программировании EEPROM-памяти следом за значением калибровочной ячейки записывается число 33050 (1А81) которое программным путем заносится в регистр сравнения OCR1A. При коррекции хода таймера меняется и значение этого числа.

Индикация текущих температур и значений в режиме установки осуществляется на два трехразрядных семисегментных индикатора с схемой включения «общий катод».

Датчики DS18B20 подсоединяются к устройству через 3-х контактные штыревые линейки DS1 и DS2, нумерация выводов которых соответствует нумерации выводов датчиков.

Управление разрядами осуществляется маломощными биполярными транзисторами NPN-типа.

Вход в меню, установка значений , запуск режимов однократного нагрева (охлаждения) осуществляется тремя тактовыми кнопками типа DTS:
— S1 — «Выбор»
— S2 — » + »
— S3 — » — »


— для каналов термостатирования — через оптосимисторы МОС3063 и симисторы ВТ139-800Е по стандартной схеме включения, что позволяет управлять нагрузками мощностью до 3,5 кВт (если мощность нагрузки более 300-400 Вт — симисторы необходимо ставить на радиаторы)
— для канала от таймера — через миниатюрное механическое реле с напряжением питания катушки 5 Вольт, что позволяет, в зависимости от примененного реле, управлять нагрузкой до 2 — 2,5 кВт

Обращаю ваше внимание на подключение сетевого напряжения 220 вольт к устройству и включение нагрузки — подключать надо как на схеме, с учетом «фазы» и «нуля» сетевого напряжения.

Питание устройства осуществляется от любого источника постоянного тока напряжением 7-25 Вольт. Схему можно запитать и от ненужного зарядного устройства от сотового телефона с выходным напряжением 5 +-0,5 Вольт. В этом случае можно из схемы исключить стабилизатор 7805 и конденсаторы С4, С5. Средний ток потребления устройством 40 миллиампер.

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

Детали, примененные в конструкции:

Управление трехканальным термометром, термостатом, терморегулятором, таймером

1. Вход в меню

В устройстве имеется два меню.
При «коротком» нажатии на кнопку «Выбор» на индикаторах высвечивается надпись «ON—-OFF», входим в меню:
— установки пределов температур работы термостатов и временных интервалов работы термостатов, временных интервалов управления нагрузкой по таймеру
При «длинном» нажатии кнопки «Выбор» надпись «ON—-OFF» сменяется надписью «Cor—-USt», при этом надо отпустить кнопку, входим в меню:
— коррекции хода часов и установки текущего времени

Обращаю внимание, что при входе в меню (длинное или короткое нажатие кнопки «Выбор») все каналы управления нагрузками отключаются.

2. Меню «Коррекции хода и установки текущего времени» (длинное нажатие кнопки «Выбор»)

После входа в меню сразу попадаем в режим коррекции хода часов:
«Cor—-00»
Повторным нажатием кнопки «Выбор» переходим в режим установки текущего времени:
«USt—-00.0»
В режиме установки текущего времени смотрим на свои самые точные часы и кнопками «+» и «-» устанавливаем ближайшее время с точностью до 10 минут.
К примеру — текущее время 20 часов 37 минут, устанавливаем на индикаторе «20,4» (20 часов 40 минут) и ровно в 20.40, нажатием кнопки «Выбор» выходим из меню. Все, реальное время выставлено, часы запущены.
Корректировать ход часов можно от +50 единиц до -50 единиц. Первоначальное значение «00» («00» появляется всегда при входе в этот режим)
При изменении установки на единицу ход часов увеличивается (+1) или уменьшается (-1) примерно на 4 секунды за 24 часа.
Точность хода часов можно проверить на канале управления нагрузкой по таймеру без подключенной нагрузки по зажиганию светодиода.
К примеру, в 21.00 мы установили текущее время, задали включение нагрузки — 8.50, выключение — 9.00. Утром замерили время выключения нагрузки. Допустим нагрузка отключилась в 8 часов 59 минут 20 секунд. Значит таймер отстал на 40 секунд за 12 часов. За 24 часа отставание составит уже 80 секунд. 80 секунд делим на 4 = 20. В режиме коррекции устанавливаем показание 20, затем переходим в режим установки текущего времени, устанавливаем ближайшее текущее время, например 9.1, и в 9 часов 10 минут, нажатием кнопки «Выбор» выходим в рабочий режим.

Обращаю внимание, что при отсутствии резервного источника питания, при «пропадании» сетевого напряжения часы обнуляются и текущее время необходимо устанавливать заново.

3. Меню установки температурных и временных интервалов для термостатов

Напомню режимы работы каналов термостатирования (терморегулирования):
— режим термостатирования — поддержание определенной температуры
— режим терморегулирования — поддержание температуры в определенных границах
— режим однократного нагрева (охлаждения)
Все эти режимы подробно описаны в статье , там же приведены подробные инструкции и возможности каждого режима.
С введением в конструкцию таймера реального времени появилась возможность для каждого канала задавать в течении суток один временной интервал работы канала. Для этого в меню введены дополнительные строчки времени включения и выключения каналов.
К примеру, нам надо чтобы 1-й канала термостатирования работал только в ночное время с 23.00 до 6.30. Для этого в 1-м меню (короткое нажатие кнопки «Выбор»):
— после установки верхнего и нижнего температурного предела появятся еще две строчки: «t.On——00,0» и «t.OF——00,0» (тоже самое будет и для второго канала)
— кнопками «+» и «-» устанавливаем: «t.On——23,0» и «t.OF——06,3»
Теперь, в 23.00 1-й канал начнет работать в заданном режиме, а 6.30 канал будет отключен, и так каждые сутки.
По режиму однократного нагрева/охлаждения. Если временной интервал не выбран (время включения/выключения установлены в «0»), то запуск этих режимов осуществляется в ручном режиме, нажатием соответствующей кнопки. Этот режим может работать и по времени.
Допустим нам надо на 2-м канале термостатирования с утра, к 7.00, нагреть воду в баке до 45 градусов, учитывая, что вода в баке до этой температуры нагревается за 25 минут:
— устанавливаем «2.On——00» и «2.OF——45»
— устанавливаем «t.On——06,3» а «t.OF» оставляем по умолчанию «t.OF——00,0»
Теперь, 2-канал автоматически запуститься в 6.30 минут, и по достижению температуры воды 45 градусов отключится.
При использовании режима однократного нагрева/охлаждения совместно с таймером сохраняется возможность и ручного запуска режима, но при этом следует учитывать, что в промежуток времени «t.OF—-t.On» (для предыдущего примера — с 24.00 до 6.30) ручной режим невозможен. Поэтому, для того, чтобы в любой момент времени запустить режим вручную, необходимо «t.OF» устанавливать на 10 минут меньше чем «t.On».

4. Меню установки временных интервалов для таймера

Таймер реального времени позволяет задать два временных интервала в течении суток для управления нагрузкой по таймеру.
Для этого в меню введены дополнительно четыре строчки:
— t1.1 — время включения для первого временного интервала
— t1.0 — время выключения для первого временного интервала
— t2.1 — время включения для второго временного интервала
— t2.0 — время выключения для второго временного интервала
Временные интервалы не должны пересекаться.
Допустим, нам необходимо включать освещение во дворе два раза в сутки: с 21.00 до 0.30 и с 5.30 до 7.00
Устанавливаем:
— t1.1 — 21,0
— t1.0 — 00,3
— t2.1 — 05,3
— t2.0 — 07,0
Теперь нагрузка по таймеру будет включена в 21.00 и в 5.30, и выключена в 0.30 и в 7.00

Второй вариант печатной платы:

Вариант установки FUSE битов:

(22,2 KiB, 2 016 hits)

Иногда требуется просто задать временной интервал, без особой микроскопической точности. Например, для приготовления пищи, где погрешность в несколько секунд за полчаса, час не играет важной роли. Исходя из этих соображений в качестве тактового генератора выбран внутренний RC-генератор. Стабильность которого зависит от температуры и изменения напряжения питания, поскольку микроконтроллер сохраняет свою работоспособность при напряжении 1,8-5,5 В. В качестве источника питания применил 3-х вольтовую батарейку (или 2 элемента по 1,5 В).

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

Для управления режимами таймера имеется пара кнопок. Первая "SET" для установки временного интервала, вторая "RESET" для сброса в любой момент если потребуется «переиграть» ситуацию и выставить другой временной интервал. А так же звуковой зуммер, в качестве звуковой индикации о состоянии таймера в разный период работы.

Таймер сделан с минимальным 5 минутным дискретным интервалом, таких интервалов можно набрать сколько угодно (до 255) если удерживать кнопку в нажатом состоянии.

Принципиальная схема кухонного таймера:

После отпускания кнопки начинается запуск таймера и обратный отсчёт, особенность таймера - звуковая индикация (глаза и руки не участвуют в контроле, а только слух), при установке «пикает» столько раз сколько нужно раз набрать 5-ти минутных интервалов. Например: нужен интервал 30 минут, значит надо нажать кнопку "SET" и удерживая её в нажатом состоянии, набрать «пиликаний» на 6 раз и отпустить кнопку. С момента отпускания кнопки "SET", зажигается светодиодный индикатор, свидетельствующий о том, что таймер запущен, и гаснет только по окончании всего цикла, также с момента запуска начинается обратный отсчёт, зуммер «пикает» по прошествии очередного дискретного 5-тиминутного интервала столько раз сколько их ещё осталось до завершения полного цикла таймера. А когда весь цикл пройден, в конце цикла звучит длительный «пиликающий» сигнал на протяжении около 10 секунд оповещающий о финале.

После этого, таймер переходит в режим ожидания перейдя по команде sleep в энергосберегающий режим Power down где потребляемый ток составит меньше микроампера в программе задействован, внутренний RC-генератор тактовая частота которого выбрана 128 / 8 кГц.

Это схема таймера на микроконтроллере PIC16F628A позаимствована с хорошего португальского сайта по радиоэлектронике. Микроконтроллер тактируется от внутреннего генератора, который можно считать достаточно точным для данного момента, так как выводы 15 и 16 остаются свободными, то можно использовать внешний кварцевый резонатор для еще большей точности в работе.


В таймере для управления девайсом присутствуют три кнопки: «START/STOP», «MIN» и «SEC»

«START/STOP» - для запуска и приостановки таймера.
«MIN» - для задания временного интервала в минутах. Можно установить от 0 до 99.
«SEC» - тож, но для установки секунд. Секунду также устанавливаются от 0 до 59.
Одновременное нажатие кнопок «MIN» и «SEC» сбросит схему таймера во время работы.

Когда установленое время на таймере израсходуется, раздастся, звуковой сигнал и загорится светодиод. В роли звукоизлучателя используется зуммер электромагнитного типа. После этого, при нажатии на кнопку, осуществится сброс таймера и светодиод потухнет.

В то время, когда таймер осуществляет обратный отсчет на выводе 13 имеется высокий уровень, а при завершении времени отсчета таймером установится низкий логический уровень. Данный вывод можно задействовать для управления каким либо исполнительным устройством. Питание схемы происходит через стабилизированный источника тока на .


Перемычка J1 используется для калибровки таймера. При ее замыкании он входит в режим программирования. С помощью кнопок «MIN» и «SEC» можноизменять значение внутреннего параметра, который замедляет или ускорять работу таймера. Это значение сохраняется в EEPROM микроконтроллера. Если находясь в режиме программирования нажать кнопку «START/STOP», то этот параметр сбросится к настройкам по умолчанию.

Простой таймер на pic16f630

Таймеру можно задать времянной интервал от одной минуты до 21 часа с дискретным шагом в минуту. В конструкции имеется 12 управляющих выключателей, каждому из которых, соответствует свое временя выдержки. Так как микроконтроллер работает от собственного генератора погрешность отсчета времени достаточно мала, не более 30 секунд за час.

При прошивке МК Jp1 необходимо отключить. Если изменять настройки времени планируется не часто, то вместо выключателей можно использовать перемычки. Прошивку, исходник и проект в Протеусе можно взять по ссылке выше

Простая схема хорошего таймера на МК atmega8, удобная навигация в меню, жидкокристаллический LCD дисплей, часы реального времени, минимальное количеством деталей.

Очень полезная вещь, например для теплицы, можно организовать полив или циркуляцию в гидропонике, можно настроить кормушки и поилки для животных, птиц и много еще для чего.


Сердцем данного таймера является очень популярный и уже не дорогой микроконтроллер Atmega8.

Конечно для прошивки нам потребуется программатор, но если его нет то можно обойтись всего 4 проводками подключенными к LPT порту по этой схеме.

Что нам понадобится:

Схема таймера

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

Как вариант исполнительного устройства на триаках, тиристорах и симисторах показаны ниже.



Вариант из программы Sprint Layout.

Особое внимание надо обращать при монтаже микросхемы часов и кварцевого элемента. Длина дорожек между ними должна быть минимальна, а лучше использовать микро кварц из наручных часов и припаять его непосредственно к ножкам МС часов. Все свободное место рядом с часами заполняем медью на корпус. Батарея необходима для поддержания часов в рабочем состоянии во время отключения от сети. Если по какой-то причине вы не стали устанавливать эту батарейку, то посадите плюсовой провод на корпус, иначе часы просто не пойдут.

Микроконтроллер прошивается программатором или с помощью простых 5 проводов.

Автор прошивки (скачать — multitimer) постарался и не стал изменять фьюзы, что очень сильно облегчает, без заморочки, прошивку для начинающего радиолюбителя. Если МК еще не использовался, новый из магазина, то просто заливаете прошивку и все, но если уже есть изменения в фьюзах, то надо выставить их так CKSEL=0001. Все остальное просто и не нуждается в пояснении.

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

В прорезанную ножом крышку, при помощи термоклея из пистолета, закрепляем LCD экран., прорезаем отверстия под кнопки управления и кнопку питания.

Размещаем все узлы внутри корпуса, постоянно проверяя как закрывается крышка, при необходимости переносим или подгибаем мешающие.

На собранную схему подаем питание, должно появиться такое изображение.

Управление осуществляется четырьмя кнопками. Меню состоит из трех пунктов, СLОСК -установка часов, RЕSЕТ -сброс всех установленных таймеров, ТIМЕR — установка таймеров.

Сначала заходим (*) в меню часов и выставляем (>)(<)(#) точное время.


Подсказка по кнопкам управления в нижней строке дисплея, в каждом меню разное, поэтому описывать кнопки нет необходимости.

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

В продолжение темы:
Ленточный фундамент

Спагетти с соусом из рыбной консервы — этот недорогой рецепт мы увидели на пачке купленных нами спагетти. Рецепт показался нам очень простым, ну и мы решили попробовать...

Новые статьи
/
Популярные