Таймер на микроконтроллере для управления нагрузкой. Схема таймера для управления низковольтной нагрузкой (CD4040)

Рассмотрим, как сделать таймер своими руками на микроконтроллере ATmega8, хотя код довольно просто адаптировать и для МК AVR других серий. Электронный таймер нужное устройство во всех областях, где требуется выполнение определенных действий через конкретный промежуток времени.

Управление таймера состоит всего из четырех кнопок:

— увеличение значения числа;

— уменьшение значения числа;

— старт таймера;

— сброс таймера.

В качестве индикатора срабатывания таймера применяется генератор звуковой частоты с динамиком. Генератор будет запускаться с помощью транзисторного ключа Q5, который в свою очередь открывается положительным потенциалом, поступающим из порта PC2 микроконтроллера.

Упрощенно таймер работает следующим образом. Кнопками «+» и «-» устанавливается требуемое количество секунд; кнопкой «старт» запускается таймер. Когда таймер отсчитает до нуля, на выводе PC2 микроконтроллера ATmega8 появится высокий потенциал, который откроет Q5. Далее транзисторный ключ запустит генератор и раздастся звук в динамике. Сброс таймера осуществляется при нажатии кнопки «сброс». Генератор звуковой частоты собран на двух транзисторах Q6 и Q7 разный полупроводниковых структур. С принципом работы и описанием схемы подобных генераторов можно ознакомиться, перейдя по .

Алгоритм работы таймера на микроконтроллере

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

Для формирования интервала времени в одну секунду мы воспользуемся первым таймер-счетчиком микроконтроллера ATmega8. Все его настройки мы определим в функцию start . Сначала разделим рабочую частоту микроконтроллера 1000000 Гц на 64 и получим новую частоту 15625 Гц. За это отвечают бит CS10, CS11 и CS12 регистра TCCR1B. Далее разрешаем прерывание по совпадению и в регистр сравнения (старший и младший) записываем двоичное число равное десятичному 15625. Затем обнуляем счетный регистр TCNT1 и устанавливаем в единицу бит WGM12 регистра TCCR1B, что вызывает сброс счетного регистра при совпадении текущего его значения с числом, записанным в регистры сравнения.

void start (void)

TCCR1B &= ~(1<

TCCR1B |= (1<

TIMSK |= (1<

OCR1AH = 0b00111101;

OCR1AL = 0b000001001; // регистр сравнения 15625

TCNT1 = 0;

TCCR1B |= (1<

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

ISR (TIMER1_COMPA_vect)

Z—;

Иногда требуется просто задать временной интервал, без особой микроскопической точности. Например, для приготовления пищи, где погрешность в несколько секунд за полчаса, час не играет важной роли. Исходя из этих соображений в качестве тактового генератора выбран внутренний 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 кГц.

Рассказать в:
Среди множества автоматических устройств, вошедших в наш быт, важное место занимают таймеры – приборы,подающие звуковой или световой сигнал либо включающие (выключающие) какой-либо электрический аппарат через заданный промежуток времени. Ими сегодня оснащены многие современные бытовые аппараты – пароварки, печи СВЧ, стиральные машины, электроплиты, радиоприемники, телевизоры и т. д. Ну, а если у вас дома есть приборы, не имеющие встроенного таймера, но их хотелось бы включать или выключать по прошествии определенного времени, не беда, таймер не трудно изготовить самостоятельно.Предлагаемое вниманию читателей устройство позволяет отсчитывать выдержку времени от 1 с до 99 ч 59 мин 59 с. Его основа (см. схему на рисунке) – популярный среди радиолюбителей микроконтроллер PIC16F84A (DD1). Кроме него, таймер содержит микросхему К176ИД2 (DD2) – преобразователь двоичного кода в семиэлементный, четырехразрядный светодиодный цифровой индикатор HG1 и стабилизатор напряжения питания DA1.После включения питания микроконтроллер считывает из своей энергонезависимой памяти (EEPROM) информацию об установках времени (о том, как ее записать в EEPROM, будет сказано ниже) и начинает отсчет. При первом включении устройства автоматически устанавливается выдержка времени, равная 2 мин 59с (на экране индикатора HG1 – цифры 2.59; незначащие нули в старших разрядах не высвечиваются). Требуемую выдержку вводят с помощью кнопок SB1 и SB2. При этом если она больше 1 ч, на экране индикатора отображаются часы и минуты, а если меньше, – минуты и секунды. Элемент Н второго разряда индикатора мигает с частотой 1 Гц, наподобие разделительного двоеточия на обычных электронных часах (он перестает мигать на последней минуте выдержки). С момента начала отсчета на выходе таймера (линия порта RA2 микроконтроллера DD1) устанавливается низкий логический уровень и подключенное к нему исполнительное устройство на транзисторе VT1 и электромагнитном реле К1 находится в режиме ожидания. По окончании заданного промежутка времени низкий логический уровень на выходе таймера сменяется высоким, транзистор VT1 открывается и реле К1 своими контактами (на схеме не показаны) включает или выключает управляемый аппарат (генератор сигнала звуковой частоты, электроприбор, телевизор и т. д.). Этот уровень напряжения на выходе сохраняется до тех пор, пока не будет отключено питание таймера или нажата кнопка SB2 (она в данном случае играет роль кнопки сброса).Чтобы изменить выдержку, во время счета нажимают на кнопку SB2. При этом начинают мигать разряды часов. Установив с помощью кнопки SB1 необходимое время (от 00 до 99 ч), вновь нажимают на кнопку SB2, фиксируя этим число часов и переводя таймер в режим установки минут. Необходимое значение вводят тойже кнопкой SB1, азатем, еще раз нажав на кнопку SB2, переходят к установке секунд. В этом режиме начинает мигать элемент Н второго разряда индикатора HG1 (при установке чисел часов и минут он не светился). Следующее нажатие на кнопку SB2 вызывает запись всех установок в EEPROM и перезагрузку микроконтроллера. В результате на экране индикатора появляются значения часов, минут и секунд, по истечении которых таймер сработает.Детали таймера монтируют на макетной или разработанной самостоятельно печатной плате. Резисторы – МЛТ, конденсаторы С1, С4 – К50-35 или аналогичные импортные, С2, СЗ – керамические КД-1, КМ с нормированным ТКЕ, С5 -KM, К10-17. Реле К1- РЭН34 исполнения ХП4.500.030-01 (сопротивление обмотки -60.. .740м, токсрабатывания – 100 мА). Во избежание повреждения микросхем DD1, DD2 при пайке рекомендуется на плате установить розетки с соответствующим числом гнезд (18 – для DD1 и 16 – для DD2). Для питания таймера используют нестабилизированный источник напряжением 8-10 В с выходным током не менее 200 мА.Кроме указанного на схеме микроконтроллера PIC16F84A, в устройстве без какой-либо доработки программы можно использовать PIC16F84. Допустима замена индикатора CA56-12GWA другим светодиодным индикатором динамического типа с общим анодом и числом разрядов не менее четырех (у него может быть иное назначение выводов, что следует учесть при монтаже). Транзистор КТ815А заменим любым кремниевым структуры n-p-п с предельным значением тока коллектора не менее рабочего тока реле. Вместо реле РЭН34 можно применить любое другое, надежно срабатывающее при напряжении 8-10В, с контактами, рассчитанными на коммутацию переменного напряжения 220 В притоке, потребляемом нагрузкой.Программа, по которой работает микроконтроллер, реагирует на состояние контактов кнопки SB2 в момент их размыкания, т. е. после ее отпускания. Такая логика сохраняется во всех режимах работы. Изменение же состояния контактов кнопки SB1 программа обнаруживает в момент их замыкания. В режиме установки времени однократное нажатие этой кнопки увеличивает значение текущего разряда на единицу, а удержание ее в нажатом положении более 1с заставляет программу перейти в режим автоматического увеличения значения разряда два раза в секунду. Нажатие на эту кнопку в режиме счета и удерживание ее в течение 1с приводит к тому, что независимо от значения времени в разрядах часов на экране индикатора отображаются минуты и секунды. После отпускания кнопки логика работы программы восстанавливается, т. е. становится такой, какой она была до ее нажатия.Следует учесть, что таймер “спешит” примерно на 1с в час, поэтому если необходима повышенная точность “хода”, то при вводе длительности выдержки требуемое значение времени необходимо увеличить на число секунд, равное числу часов.АРХИВ:Скачать Раздел:

На нашем сайте, посвящённом различным электронным самоделкам, уже неоднократно публиковались схемы . Конечно они уступают современным промышленным аналогам, где имеется дисплей, возможность программирования и другие сервисные функции. И вот пришло время разместить такую схему, которая на равных будет конкурировать с лучшими фирменными образцами. Цифровой таймер используются для управления работой электрических устройств, по запрограммированному графику. Этот программируемый таймер делается на основе микроконтроллера PIC16F628A , который может быть запрограммирован, чтобы составить расписание включения и выключения электрического прибора, подключенного к нему, который управляется через реле. Таймер позволяет вручную задать время включения и выключения. Максимальный интервал времени, который можно настроить для включения и выключения, составляет 99 часов 59 минут. Проект разработан под использование 16х2 ЖК-дисплея и 4 кнопки.

Здесь 5 вольтовое реле управляется транзистором PN2222, который, в свою очередь, управляется RB3 PIC16F628A. Цифровые входы из 4 кнопок читаются с помощью порта ввода/вывода RA2, RA3, RA4, и RB0. Стандартный 16?2 символьный ЖК-дисплей используется для отображения состояния устройства, программы, меню и времени. ЖК работает в 4-битном режиме, поэтому только 6 выводов I/O PIC16F628A необходимы для работы. Пьезоэлектрический зуммер дает звуковой сигнал, когда таймер запускается и останавливается. Он также подает звуковой сигнал, когда устройство включено или выключено. Напряжение питания схемы поступает от стабилизатора LM7805. На вход её подается 9 В от сетевого адаптера. Подсветка LED повышает читаемость дисплея LCD в условиях низкой освещенности состоянии.

Работа таймера и функции кнопок

Таймер получает команды от 4-х кнопок. Их функции следующие:

Время : позволяет задать время включения и выключения. Когда таймер изначально включен, устройство находится в выключенном состоянии, и время 0. Нажав эту кнопку, можно переключаться между on и off на дисплее.

Выбор : позволяет выбрать между on и off параметрами, а также часовой и минутной цифрой. Выбранная цифра увеличивается нажатием кнопки ON/OFF.

Ввод : когда соответствующее время выбрано, нажатие данной кнопки завершит установки.

Пуск/стоп : чтобы запустить или остановить таймер. Если он уже включен, вы можете остановить его в любое время при нажатии на эту кнопку.

Таймер на ATmega8 простой, небольшая схема, на часовом кварце

Описание управления.

Если в работе осталось меньше десяти часов, ведущий нуль убирается, если осталось меньше часа, на индикатор выводятся ММ:СС, при настройке таймера формат времени ЧЧ:ММ.
Когда осталось меньше 20 секунд, на сигнальный вывод (РС4) подаются импульсы с периодом 0,5с.
при нажатии кнопки SW4 во время работы таймера останавливает полностью счет, последующие нажатия по очереди восстановляют предыдущую настройку или обнуляют таймер

Если джампер Jmp1 замкнут, то при появлении питания, таймер продолжает отсчет. Если разомкнут, то отсчет пока питания нет, не идет (пауза). При резервном питании, индикация отсутствует. Точка около единиц часов мигает.
При нажатии на кнопку СБРОС таймер отключает нагрузку, останавливается и обнуляется, при еще одном нажатии восстанавливается предыдущая настройка. Точка мигает только когда идет счет.

точки индикатора:

Не мигают: таймер остановлен
- мигает средняя - таймер запущен

Индикаторы ОА .

Автор проекта VasylYE найти его можно здесь http://elektron.ucoz.ru/forum/