Таймер на микроконтроллере для управления нагрузкой. Очень удобный таймер обратного отсчёта с цифровым дисплеем LED. Работа таймера и функции кнопок

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

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


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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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


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

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

Это схема простого таймера построенного на микроконтроллере PIC16F628A и индикаторе LCD 1602. Идея таймера позаимствована с одного португальского сайта по радиоэлектронике.

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

Таймер на PIC16F628A. Описание работы

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

  1. «START/STOP» — для запуска и приостановки таймера.
  2. «MIN» — для установки минут. Количество минут устанавливаются от 0 до 99, а затем все начинается снова с 0.
  3. «SEC» — для установки секунд. Секунду также устанавливаются от 0 до 59 и потом снова с 0.

Одновременное нажатие на «MIN» и «SEC» приводит к сбросу таймера во время работы.

Когда время на таймере достигает 00:00, раздается звуковой сигнал (3 коротких и 1 длинный звуковой сигнал) и светодиод HL1 загорается. В качестве звукоизлучателя применен зуммер электромагнитного типа. После этого, при нажатии одной из кнопок, происходит сброс таймера и выключение светодиода HL1.

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

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

Код написан и скомпилирован с mikroC PRO для PIC.

Параметры проекта:

  • Генератор: INTOSC
  • Частота генератора: 4 МГц
  • Сторожевой Таймер: отключен
  • Power-up таймер: включен
  • RA5/MCLR/VPP: отключен
  • Brown-out: включен

Фото готового таймера.

Представляем очень практичное устройство отсчёта времени для дома и кухни. Проект был разработан по причине того, что хоть всяких таймеров много в разных устройствах (часы, смартфоны и т. д.), но все они не удобны в эксплуатации в условиях кухни или мастерской. Управление должно быть максимально упрощено — никаких лишних кнопок, которые не сразу и вспомнить какая за что отвечает.

Схема принципиальная таймера с энкодером


Схема на кухонный таймер с микроконтроллером ATtiny 2313

Когда-то давно были в продаже механические таймеры — они реально были просты в использовании. Вот и решено объединить эту простоту с современной базой. Так возник этот таймер с регулятором — энкодером. В нём как и в механическом прототипе, можно увеличивать и уменьшать время отсчета. Основа — микроконтроллер ATtiny 2313. Вот к нему .


Рисунок печатки таймера

Как работает устройство

Увеличение/уменьшение времени происходит скачкообразно сразу на несколько секунд. Кроме того, время можно приостановить.

Последние 5 минут сигнализируются короткими двойными пиками каждую минуту. А последние 15 секунд пикает каждую секунду.

Возможность выключения текущего сигнала пищалки осуществляется нажатием на энкодер или поворотом его ручки в любую сторону.


Вид сбоку

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


Вид сбоку на детали

И вместо распознавания временных шагов на 15, 30, 60 секунд, лучше было бы определить скорость поворота ручки энкодера и на этой основе изменять время. Медленное вращение — подсчитывает отдельные секунды, быстрое — шаги в несколько минут.


Готовый самодельный LED таймер

Корпус… До него дело так и не дошло 🙁 Таймер уже долгое время так и используется в полуоткрытом виде: снизу 3 пальчиковые батарейки, спереди трёхцифровой индикатор LED, а сверху ручка регулятора выбора времени.

Видео работы таймера

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

Рассмотрим, как сделать таймер своими руками на микроконтроллере 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—;

Рассказать в:
Среди множества автоматических устройств, вошедших в наш быт, важное место занимают таймеры – приборы,подающие звуковой или световой сигнал либо включающие (выключающие) какой-либо электрический аппарат через заданный промежуток времени. Ими сегодня оснащены многие современные бытовые аппараты – пароварки, печи СВЧ, стиральные машины, электроплиты, радиоприемники, телевизоры и т. д. Ну, а если у вас дома есть приборы, не имеющие встроенного таймера, но их хотелось бы включать или выключать по прошествии определенного времени, не беда, таймер не трудно изготовить самостоятельно.Предлагаемое вниманию читателей устройство позволяет отсчитывать выдержку времени от 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с в час, поэтому если необходима повышенная точность “хода”, то при вводе длительности выдержки требуемое значение времени необходимо увеличить на число секунд, равное числу часов.АРХИВ:Скачать Раздел:

Последние материалы раздела:

Создание и печать визитных карточек в приложении Publisher
Создание и печать визитных карточек в приложении Publisher

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

Физики нашли способ сделать любое тело невидимым
Физики нашли способ сделать любое тело невидимым

На чтение 5 мин. Опубликовано Октябрь 22, 2013 Возможность стать на время невидимым всегда прельщала людей. Им кажется, что получив эту...

Сколько кадров в секунду видит человек
Сколько кадров в секунду видит человек

Картинка на кинескопе телевизора не показывается на мгновение, как в кино, а рисуется сверху вниз электронным лучом в течение одного кадра - чуть...