Простой таймер на PIC16F628A. Схема и описание. Кухонный таймер на ATmega8 Схема таймера с включением нагрузки на микроконтроллере

Вниманию глубокоуважаемой публики предлагается очередной проект из цикла "меньше не бывает". На этот раз это таймер, собранный на микроконтроллере attiny2313 . Количество деталйе, кроме микроконтроллера, минимально, хотя и слегка больше, чем в уже известном проекте "термостат - еще меньше, чем не бывает". И тем не менее, таймер достаточно "нафарширован" функциями.

Назначение.

Таймер предназначен для управления бытовыми нагрузками по одному из 3 алгоритмов:

  • Цикл : непрерывное включение нагрузки на заданный интервал времени с последующим отключением на другой заданный интервал;
  • Выдержка и однократное включение - включение нагрузки по истечению заданного интервала времени;
  • Выдержка и однократное отключение - отключение нагрузки по истечению заданного интервала времени.
Основные технические характеристики и функции.
Минимальный отсчитываемый интервал времени 1 сек
Максимальный отсчитываемый интервал времени 999 мин. 59 сек.
Шаг перестройки интервалов времени в интервале 1 сек.
Управление Кнопками
Количество кнопок управления 2
Тип индикатора 7-сегментный
светодиодный
3(4)-разрядный
Сохранение заданных интервалов для каждого режима при отключении питания Предусмотрено
Продолжение отсчета времени при восстановлении основного питания Предусмотрено
Резервный источник питания Литиевая
батарейка 3В
Выходной сигнал Логический,
0 - 5В, 20 мА
Предупреждительный сигнал за 10 секунд до окончания интервала Предусмотрен
Тип индикатора (общий анод/катод) Не имеет значения

Принципиальная схема таймера

На рисунке приведена принципиальная схема таймера. группа из трех светодиодов может быть заменена четвертым разрядом индикатора (далее описание ведется именно в расчете на этот вариант, т.е. дополнительные светодиоды упоминаются, как соответствующие сегменты 4-го разряда). Для достижения настоящей миниатюрности все компоненты, кроме индикатора, следует выбирать в SMD-исполнении. Звукоизлучатель - это не простой динамик, а зуммер со встроенным генератором, т.е. такой, что при подаче 5В начинает пищать.

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


Режимы работы таймера

Предусматривается два режима работы таймера - конфигурирование и основной.

Конфигурирование

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

В режиме конфигурации кнопка Р служит для выбора параметра, а кнопка СС изменяет выбранный параметр. Выбранный параметр мигает. Параметров всего два: тип индикатора и поведение таймера при работе от резервного источника питания. Первый параметр отображается в первом разряде индикатора, второй - в третьем разряде.

В режиме конфигурации изображение на индикаторе может отсутствовать или быть странным/нечитаемым - это нормальное явление: так как таймер рассчитан на работу с индикатором любого типа (общий анод или катод), то при неверной настройке изображение будет испорчено - надо всего лишь нажать кнопку СС , переключив тем самым тип индикатора на другой. Если тип индикатора выбран верно, в первом разряде отобразится буква А (индикатор с общими анодами) или С (индикатор с общими катодами.

Нажав кнопку СС можно переключиться на второй настраиваемый параметр - начнет мигать третий разряд индикатора. В этом разряде отображается либо минус , либо буква G . Минус означает, что при отсутствии основного питания таймер будет остановлен, и продолжит работу только после восстановления питания. Буква G обозначает режим сохранения "хода" таймера и при отсутствии основного питания. Вы должны выбрать наиболее удобный режим для себя.

Завершить режим конфигурации можно нажатием и удержанием кнопки Р более нескольких секунд. После завершения настроек изображение на индикаторе станет характерным для основного режима работы.

Основной режим

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

Особенности индикации

На индикаторе интервала отображается время. Формат отображения можно назвать «минуты с плавающими секундами». Десятичная точка на индикаторе отделяет единицы минут от десятков секунд. Положение точки не фиксировано и зависит от того, какое количество минут следует отображать. Если количество минут более 99, то весь индикатор целиком занят под показания минут, секунды при этом не отображаются. Если минут менее 100, но более 9, то на индикаторе можно видеть десятки секунд. Если же минут менее10, то секунды отображаются полностью - и десятки, и единицы. Таким образом, с достаточной точностью можно видеть оставшееся время до истечения заданного интерва-ла (см. рисунки).

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

Дополнительный индикатор состоит из 3-х светодиодов (в случае применения 4-го разряда индикатора используются сегменты А, G, D), назначение которых показано в таблице.

Индикатор Сегмент Назначение
ВКЛ A

ВКЛЮЧЕНА

ОТКЛ G Показывает, что на дисплее интервал, в течение которого нагрузка ВЫКЛЮЧЕНА
1РАЗ D

Показывает, что включен однократный режим отсчета интервала

Когда идет отсчет времени, т.е. таймер работает в режиме счета , точка между минутами и секундами на индикаторе мигает. Индикаторы ВКЛ и ОТКЛ могут светиться совместно с индикатором 1РАЗ , означая при этом соответствующий режим выдержки времени и отключения или включения нагрузки. Например, если светятся индикаторы ОТКЛ , 1РАЗ и мигает точка, это означает следующее: нагрузка отключена, идет отсчет интервала, после его окончания нагрузка включится, а таймер остановится.

В режиме цикла индикатор 1РАЗ не светится.

Состояния

Различается три основных состояния в основном режиме работы:

  • Ожидание - таймер остановлен, можно изменить настройки интервалов и выбрать алгоритм работы. Далее это состояние обозначается О .
  • Счет - таймер отсчитывает выбранный интервал и управляет нагрузкой по выбранному алгоритму. Возможна приостановка или полная остановка от-счета времени, т.е. переход в состояние О . Далее это состояние обозначается С .
  • Кроме основных, имеется еще дополнительное состояние изменения интервалов , далее обозначаемое, как состояние И .
Управление состояниями таймера

Управление состояниями осуществляется уже известными кнопками СС и Р .

Когда таймер в состоянии О , кнопка Р переключает алгоритм работы, что соответственно отображается на индикаторе. Можно выделить 4 варианта алгоритма работы:

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

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

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

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

Последние 10 секунд каждого интервала подаёся звуковой сигнал, напоминая о скором завершении интервала - в этом случае нажатие кнопки СС позволяет перезапустить выбранный интервал, т.е. продлить интервал еще на столько же. Если сигнализация скорого завершения интервала не требуется - нужно либо отключать звукоизлучатель при помощи тумблера, либо не устанавливать его вообще.

Кнопка Р в режиме С выполняет функцию "Стоп " - отсчет времени останавливается и таймер переходит в режим О , при этом интервал восстанавливает значение, заданное пользователем, т.е. таймер готов к очередному запуску.

Изменение длительности интервалов

В состоянии О возможно изменить длительность текущего интервала, т.е. того, который отображен на индикаторе. Для этого надо нажать и удерживать кнопку Р до тех пор, пока не включится состояние изменения интервала. От состояния О это состояние отличается тем, что один из разрядов индикатора мигает - именно его значение будет изменяться при нажатии кнопки СС . Изменение происходит по кругу, т.е. 1-2-3-4-5-6-7-8-9-0-1-2-..., но при этом учитывается тот факт, что не может быть задан интервал 0 секунд и 0 минут, а так же число десятков секунд не может превышать 5.

Важное замечание : таймер определяет длительное нажатие кнопки Р уже после того, как отработает ее нажатие краткое, т.е. сначала произойдет переключение режима таймера, а затем включится режим изменения интервала. Эту особенность следует учитывать при работе.

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

Такой поразрядный способ изменения интервала позволяет наиболее быстро ввести любое значение от 0.0 до 999.59 при помощи всего пары кнопок. Дополнительно облегчает ввод автоповтор нажатой кнопки, т.е. если нажать и удерживать кнопку более 1,5 секунд, показания начнут изменяться автоматически в ускоренном темпе.

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

Возможные применения устройства.

Полив растений, кормление животных (алгоритм «цикл»).

Экспонирование в фотографических и других процессах (алгоритм «выдержка и отключение»).

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

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

Так как работа над таймером шла долго и активно обсуждалась на форуме, у некоторых посетителей сайта возникал вопрос: для чего используется звуковое напоминание о скором завершении интервала и возможность продлить текущий интервал? Это предусмотрено на случай использования таймера в качестве "незабудки". Например, вы сели паять, а таймер у вас управляет питанием паяльника. Вы настроили таймер на работу в режиме "включено 1 раз " на 15 минут. Предположим, спустя 10 минут вам позвонили по телефону и вы отложили паяльник. Если вы заболтались - таймер начнет попискивать, напоминая о себе. Если вы не слышите этих сигналов - таймер отключит паяльник, уберегая вас от пожара. Если же вы не спите, не заняты - вы нажимаете кнопку СС и продолжаете работать еще 15 минут до очередного напоминания.

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

P.S. Для тех, кто захочет что-то поменять в коде таймера.
В настоящее время прошивка собирается компилятором WinAVR 20100110 и занимает 2016 байта из имеющихся 2048 . Но такой объем получен не просто так, а только при определенных усилиях со стороны программиста и компилятора. Makefile для сборки проекта прилагается к исходникам - не стоит изменять его в плане опций компилятора или компоновщика!


(8) | Просмотров: 121608

Это схема простого таймера построенного на микроконтроллере 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: включен

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

И. КОТОВ, г. Красноармейск Донецкой обл., Украина
Предлагаемое устройство может выполнять функции таймера, термометра и терморегулятора. Оперативная регулировка позволяет настроить его на выполнение указанных функций как совместно, так и по отдельности. Вся необходимая информация выводится на трёхразрядный светодиодный индикатор. При разработке устройства ставились задачи минимизации электрической схемы, упрощения процесса управления и расширения функциональных возможностей. Они были решены за счёт применения микроконтроллера и специализированного датчика температуры.

Технические характеристики в режиме терморегулятора
Интервал регулируемой
температуры, °С... .от -55 до +125 Разрешающая способность при измерении и регулировании, °С:
в интервале температуры-9,9...-99,9 °С...........0,1
в интервале температуры-55...-10 °С и+100...
+125 °С.....................1
Погрешность измерения, °С, не более:
в интервале температуры-10...+85 °С.............±1
в интервале температуры-55...-10 °С и+85...
+125 °С....................±2
Интервал установки гистерезиса, °С................± 0...50
Верхняя граница установки интервала регулирования, °С................-55...+125
Нижняя граница установки интервала регулирования,°С................-55...+125
Интервал корректировки
показаний термометра, °С......±2
Терморегулятор работает как в режиме нагрева, так и охлаждения. Дополнительно можно установить продолжительность поддержания температуры в интервале 1-999 мин или остановку работы терморегулятора на тот же промежуток времени. В процессе работы подсчитывается суммарная продолжительность подключения нагрузки к сети. Устройство предназначено для работы совместно с датчиком температуры DS18B20 и автоматически определяет его ID-код.
Технические характеристики в режиме таймера
Интервалы установки времени
секунд.................1...999
минут..................1...999
часов..................1...999
Направления отсчёта времени.......................прямое
или обратное
Таймер обеспечивает задержку как включения, так и отключения нагрузки.
Схема устройства показана на рис. 1.


Все основные функции возложены на микроконтроллер DD1, управление режимами и ввод данных осуществляют с помощью кнопок SB1-SB3, а информация выводится на трёхразрядный светодиодный индикатор HG1. Питание осуществляется от сети, которую подключают к зажимам 1 и 2 колодки ХТ1. На трансформаторе Т1, диодном мосте VD1, стабилизаторе DA1 и сглаживающих конденсаторах С2 и С4 собран узел питания. Резистор R1 повышает надёжность работы устройства при повышенном сетевом напряжении. Но при желании его можно исключить, установив на плате взамен него проволочную перемычку.
Включение или отключение питания нагрузки осуществляется с помощью реле К1, контакты которого К1.1 нормально разомкнуты и подсоединены к зажимам 3 и 4 колодки ХТ1. Датчик температуры DS18B20 подключают к зажимам 5 и 6. Применена двухпроводная схема подключения датчика: к зажиму 6 присоединён вывод 2, к зажиму 5 - выводы 1 и 3. Для вывода информации на индикатор HG1 использована динамическая индикация с периодом обновления символов около 20 мс.
Управление работой и установку параметров осуществляют с помощью трёх кнопок SB1 "<" (уменьшение), SB2 ">" (увеличение) и SB3 "˾" (ввод). В зависимости от предварительной установки устройство может выполнять функции универсального терморегулятора или быть в роли таймера. Для выбора функционального назначения необходимо нажать на кнопку SB3 и, удерживая её, подать напряжение питания. На индикаторе HG1 появится номер текущей установки (рис. 2).

Кнопками SB1 и SB2 устанавливают режим работы: 1 - универсальный терморегулятор (задан по умолчанию), 2 - таймер. Для подтверждения следует нажать на кнопку SB3. Изменения вступят в силу после следующего включения.
При работе устройства в качестве терморегулятора датчик температуры располагают в месте, где необходимо поддерживать заданную температуру. После подключения прибора к сети на индикаторе "пробегает" тестовая надпись HELLO - терморегулятор готов к работе. В рабочем режиме на индикаторе HG1 постоянно отображается текущее значение температуры. О том, что нагрузка в данный момент включена, свидетельствует мигающая точка в младшем разряде.
Установку температуры производят кнопками SB1 и SB2, по умолчанию она составляет 30 °С. В момент нажатия на любую из этих кнопок на индикаторе HG1 появляется мигающее значение устанавливаемой температуры, а по истечении 5 с после последнего нажатия терморегулятор возвращается в рабочий режим. Все введённые данные сохраняются в энергонезависимой памяти микроконтроллера. При нажатии и удержании кнопок SB1 и SB2 выбранный параметр изменяется быстрее. В зависимости от продолжительности нажатия последовательно переключаются три его скорости изменения.


Для установки других настроек терморегулятора необходимо войти в меню. Для этого следует нажать на кнопку SB3. Изменение настроек производят в соответствии с рис. 3. Через 5 с после последнего нажатия любой кнопки устройство переходит в рабочий режим, а все настройки сохраняются в энергонезависимой памяти. Ниже приведено описание доступных параметров.

ГГР - гистерезис. Параметр, в котором задаётся разность температур включения и отключения нагрузки. Установленное число суммируется с заданной установкой температуры для включения и вычитается для выключения. Если, например, задана температура 30,0 °С, а ГГР - 4,5, то в режиме нагревания отключение нагрузки произойдёт при температуре 30,0 + 4,5 = 34,5 °С, а включение - при 30,0 - 4,5 = 25,5 °С. Если терморегулятор работает в режиме охлаждения, отключение произойдёт при температуре 25,5 °С, а включение - при 34,5 °С. Если установить ГГР равным 0, на индикаторе отобразится
надпись ГР и прибор будет работать как обычный термометр, на индикаторе отобразится текущая температура, а нагрузка будет всё время отключена. По умолчанию установлено значение ГГР, равное 3,0.
ВПР - верхний предел температуры. Этот параметр определяет максимально возможное значение устанавливаемой температуры. В случае превышения этого предела, независимо от других установок, нагрузка будет отключена. По умолчанию в ВПР задано значение 80,0.
НПР - нижний предел температуры. Этот параметр определяет минимально возможное значение устанавливаемой температуры. В случае снижения температуры ниже НПР, независимо от других настроек, нагрузка также будет отключена. Значение НПР всегда меньше или равно ВПР. По умолчанию в НПР задано значение 10,0.
ВРВ - продолжительность времени включения (в минутах). Этот параметр задаёт временной интервал, в течение которого поддерживается заданная температура. По его окончании нагрузка будет отключена. Признак
истечения установленного временного интервала - постоянно светящаяся точка в младшем разряде индикатора. Повторный запуск таймера производят нажатием на кнопку SB3. Если ВРВ установлено равным 0, на индикатор выводится изображение "---", а таймер в работе терморегулятора не участвует. По умолчанию таймер отключён. ВРО - продолжительность времени отключения. Параметр задаёт временной интервал (в минутах), в течение которого устройство находится в выключенном состоянии, предназначен для использования совместно с параметром ВРВ. По окончании установленного интервала времени устройство возвращается к функции поддержания температуры. Если, например, установить значение ВРВ 90, а ВРО 60, терморегулятор будет циклически поддерживать температуру в течение 90 мин, а затем отключаться на 60 мин и снова включаться на 90 мин и т. д. Если ВРО равно 0, на индикаторе выводится изображение "---", а таймер в работе терморегулятора не участвует. По умолчанию ВРО имеет нулевое значение (таймер отключён).
ПАР - параметры работы. Значение ПАР определяет режим работы терморегулятора: нагревание или охлаждение. При работе совместно с нагревателем в ПАР необходимо установить НА, при работе совместно с охладителем - ОС. По умолчанию в ПАР задано значение НА (работа с нагревателем).
ПОП - поправка показаний. Этот параметр позволяет проводить корректировку показаний термометра и в случае необходимости добиться (по образцовому термометру) погрешности измерения менее 0,1 °С. Значение ПОП добавляется к текущим показаниям температуры. Обычно в корректировке показаний нет необходимости, поскольку датчик температуры DS18B20 имеет заводскую калибровку и очень высокую точность измерения. По умолчанию ПОП имеет значение 0,0 (корректировка отсутствует).
РАБ - время работы нагревателя (или охладителя). В этом режиме выводится время (в часах), в течение которого нагрузка была включена. Это позволяет оценить расход электроэнергии. Например, если месячные показания РАБ равны 250, а мощность нагревательного элемента - 0,5 кВт, расход электроэнергии составляет 125кВт-ч.
НОГ - идентификационный номер (ID-код) датчика температуры. Выводится 64-разрядный идентификационный номер датчика DS18B20, представленный в шестнадцатеричном формате. Например, 28А2С86801000017. (последняя цифра отмечена десятичной точкой). Просмотр номера производится нажатием на кнопки SB1, SB2 и может понадобиться для определения, какой из датчиков подключён. Если связь с датчиком нарушена или по каким-либо причинам код считать не удалось, на индикатор будет выведено сообщение Err (ошибка).
Устройство автоматически определяет наличие и исправность датчика температуры. При обрыве цепи или отсутствии датчика на индикаторе появится надпись HI, а при коротком замыкании или неправильном подключении - Lo. При любой неисправности нагрузка автоматически отключается. Провод, соединяющий датчик с устройством, должен иметь сечение не менее 0,5 мм2, а длину - не более 10 м. Информация считывается с датчика температуры с периодом 1 с и сравнивается с предыдущим значением. Если скорость роста температуры превышает 30 °С/с или скорость падения температуры превышает 20 °С/с, ситуация интерпретируется как аварийная и нагрузка отключается.
Для просмотра и изменения установок при работе в режиме таймера необходимо войти в меню. Для этого следует нажать на кнопку SB3. Установку проводят в соответствии с рис. 4

Через 5 с после последнего нажатия на любую кнопку устройство переходит в рабочий режим, а все настройки сохраняются в энергонезависимой памяти. После входа в меню появляется текущая установка таймера (индикатор мигает). Кнопками SB1 и SB2 устанавливают временной интервал в пределах 000...999 (по умолчанию задано 100). Если установить 000, таймер блокируется, а в рабочем режиме на индикаторе будет сообщение "---".
После установки цифрового значения нажимают на кнопку SB3, и затем можно
задать единицы измерения времени. Это могут быть секунды SEC (по умолчанию), минуты Ml или часы HOU.
Далее устанавливают режим работы таймера. При выборе ОН, по истечении установленного временного интервала, нагрузка будет подключена, выбор OFF означает, что нагрузка будет
отключена. Выбор направления счёта таймера - обратный при выборе ОБС (задан по умолчанию) и прямой при выборе - ПРС. Во время работы таймера на индикаторе отображается время. Запуск таймера осуществляют нажатием на кнопку SB2. Если задан прямой счёт, показания изменяются от нуля до максимального значения, например, 0, 1, 2... и т. д., а если обратный - от максимального значения до нуля, например, 100, 99, 98... и т. д.
Остановку таймера производят кнопкой SB1. При повторном нажатии на неё он перейдёт в исходное состояние. Если выбрана установка на включение, по окончании установленного интервала нагрузка будет подключена и на индикаторе появится сообщение ОН, а если установка на выключение - OFF и нагрузка отключена. О текущем состоянии нагрузки можно судить по десятичной точке в младшем разряде индикатора. Она светит - нагрузка включена, погашена - отключена. В случае установки минут или часов точка каждую секунду кратковременно вспыхивает, если нагрузка отключена, и кратковременно гаснет, если включена.
Для повышения надёжности работы в устройстве применён ряд программных приёмов. В первую очередь, это касается работы с EEPROM микроконтроллера. Каждый параметр в энергонезависимой памяти продублирован в четырёх ячейках. Чтение и запись проводятся поблочно. После каждого чтения содержимое четырёх ячеек сравнивается между собой. Если в одной или двух из них оно отличается от остальных, единое значение всех ячеек блока восстанавливается по тем, в которых оно идентично.
Большинство деталей монтируют на двух печатных платах из фольгированного стеклотекстолита, чертежи которых показаны на рис. 5 и рис. 6.


Применены постоянные резисторы для поверхностного монтажа РН1-12, остальные - МЛТ, С2-23. Оксидные конденсаторы - К50-35 или импортные, остальные - К10-17. Реле - JZC-22F3SC20DDC12V, кнопки - DTST-6. Трансформатор должен обеспечивать на выходе выпрямителя напряжение 12 В при токе до 150 мА ХТ1 - однорядный клеммник серии 305. Для программирования микроконтроллера предназначен файл modul_v2.hex.
Платы устанавливают в пластмассовый корпус (рис. 7).

Внешний вид собранного устройства показан на рис. 8.

Резистор R2 был предназначен для защиты микроконтроллера в процессе отработки конструкции, но после изготовления нескольких экземпляров устройств он был исключён и взамен него на плате установлена проволочная перемычка.
В целях упрощения предусмотрена возможность исключения токоограничивающих резисторов R4-R11 в цепях управления сегментами индикатора HG1. В этом случае их заменяют отрезками провода, в микроконтроллер следует загрузить файл modul_v1.hex Чтобы исключить перегрузку по току индикатора и микроконтроллера, подача напряжения на каждый разряд индикатора осуществляется на 0,3 мс, поэтому работают они при номинальном среднем токе. Яркость свечения индикаторов с различным числом включённых элементов немного различается из-за неравномерного распределения тока и различного падения напряжения на выходных транзисторах портов микроконтроллера. Индикатор с общим катодом можно заменить на аналогичный, но с общим анодом. Для этого в начале программы modul_v1 .asm (modul_v2.asm) следует удалить строку
#define _COMMON_CATODE_ и заново откомпилировать программу.
Программ микроконтроллера скачать
При программировании устанавливают следующую конфигурацию микроконтроллера: BODLEVEL=1; BODEN = 0; SUT1 = 1; SUTO = 1; CKSEL3 = 1; CKSEL2 = 1; CKSEL1 = 1; CKSELO = 1; RSTDISBL = 1; WDTON = 1; SPIEN = 0; СКОРТ = 0; EESAVE = 0; BOOTSZ1 = 1; BOOTSZO = 1;
BOOTRST = 1.
От редакции. Текст и коды программ микроконтроллера находятся на нашем FTP-сервере по адресу .
Радио №3 2012

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

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

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

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

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

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

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

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

Предлагаю к повторению несложную схему бытового (кухонного) таймера на 99 минут собственной разработки. Идея заключалась в простоте управления, чтоб буквально любая (тупая) домохозяйка без проблем могла им пользоваться. Достаточно просто набрать 2 цифры минут и нажать кнопку "Старт". При необходимости можно установить и секунды. Также имеется скрытое "сервисное меню", где "спрятано" несколько фич - отображение прямого/обратного отсчета времени при работе таймера и несколько различных вариантов световых и звуковых эффектов по окончании отсчёта времени. Еще одной особенностью таймера (правда только на уровне программирования контроллера) является возможность выбора варианта управления ногой RC5 - появление на ней "1" либо во время счета времени, либо после окончания счета. Эту ногу можно использовать, например, для управления нагрузкой или как нибудь по своему усмотрению. Я в своем варианте сделал включение дополнительного усилителя звука по окончании счета.

В начале я разработал "дизайн" табло. В таймере применен индикатор на 2 цифры с двоеточием слева, а вокруг него расположены 6 светодиодов. При отсчете времени они показывают десятки секунд, а при окончании счета изображают бегущий огонь. Двоеточие тоже выполняет функцию визуального конроля режима. При установке времени в режиме минут оно погашено, а в режиме секунд - горит. Когда таймер запущен, начинается отсчет времени. Если время меньше одной минуты, на индикаторе отображаются секунды и двоеточие горит постоянно. Когда "натикало" больше минуты - на индикаторе высвечиваются минуты, а двоеточие начинает мигать. Десятки секунд, как писал выше, показывают светодиоды. Сейчас при чтении этого текста кажется что слишком все намудрено, но в реале все очень просто и логично.

Поскольку я предполагал встроить этот таймер прямо в стену, питание ему сделал от сети с настоящим выключателем. Никаких спящих и дежурных режимов! Не люблю я их. Только полное выключение! Блок питания - простейший импульсный, по типу китайской зарядки. За особой точностью хода я не гнался, так как для приготовления всяческих кулинарных изделий точность даже плюс/минус пару минут не так уж и критична. Да и образцового секундомера у меня тоже не было. На глаз при установке максимального интервала в 99 минут по сравнению с "эталонными" часами разницы практически не было. Ну может там каких пол секунды и было, но на глаз это отследить трудно. Так что если Вас все устраивает, можете приступить к повторению девайса. Вот его схема:

На время прошивки МК перемычки JP1 и JP2 снимаются. Для экономии места на схеме ключи VT5, VT6, VT9 и VT10 не показаны. Индикатор взял из старого компьютерного корпуса. В нем в качестве двоеточия используется левая 1. Только при окончательной сборке эти сегменты надо немного закрасить чтоб получилось 2 точки (я просто заклеил ненужные участки черной изолентой). Еще особенностью этого индикатора является то, что сегменты этой левой единицы соединены последовательно внутри индикатора и выведены как сегмент H (запятая) от второй цифры. Поэтому обратите внимание, что номинал R22 меньше, чем у резисторов для других сегментов. Вообще же можно просто использовать обычный индикатор на 2 цифры и 2 последовательно соединенных светодиода для двоеточия. Я взял такой индикатор просто потому, что он у меня уже был. На всякий случай дам его распиновку.

Установка времени происходит следующим образом. По умолчанию (при включении) таймер находится в режиме ввода минут, при этом двоеточие погашено. Цифровыми кнопками набираем сколько надо минут и нажимаем кнопку "Старт" (S12 по схеме). Вводимые цифры по ходу нажатия сдвигаются влево, какие цифры на индикаторе горят - столько минут в данный момент и установлено. Например, если на индикаторе горит 23 (установлено 23 минуты), а надо поставить 6 минут, то просто нажимаем "0" и "6". Если надо установить и секунды - нажимаем кнопку "Сек" (S10 по схеме), при этом зажигается двоеточие. Ставим сколько надо секунд точно также, как и минуты. Если набранное число получилось больше 59 секунд, старшая цифра начинает мигать, символизируя ошибку, и сбрасывается в 0. Запустить таймер можно как из режима минут, так и из режима секунд. После запуска таймера, остановить его досрочно можно повторно нажав кнопку "Старт".

На принципиальной схеме слева виден коннектор X3 с надписью "Out". Это тот самый выход управления чем-нибудь, про который я писал в начале. В исходном состоянии там "0". На этапе программирования МК можно задать, когда там будет появляться уровень "1" - во время отсчета времени или по окончании отсчета и до возвращения таймера в исходное положение. Задается это в памяти данных EEPROM, в ячейке по адресу 0x2105 (на рисунке квадратик 1). Записав туда значение 0x01, на выходе будет логическая "1" во время работы таймера. Записав 0x00 - после окончания отсчета времени. Вот скриншот программы при программировании МК.

По адресу 0x2107 (квадратик 2) находится значение числа коррекции при отсчёте времени (отстают-уменьшить, спешат-увеличить). Изменять число желательно в небольших пределах и без особой надобности лучше не трогать. Не ставить числа, равные 0 и 0FFh. По адресу 0x2109 (квадратик 3) находится число, определяющее сколько минут будет работать звуковой сигнал при окончании отсчета, если таймер не сбросили в исходное состояние нажатием кнопки.

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

Если нагрузка не очень мощная (несколько десятков Ватт), тиристор можно даже не ставить на радиатор. При опытах я подключал лампу накаливания 25W и все детали были холодные, как труп.

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

Т.е. выход "Out" включал питание "усилка", а сам сигнал звука брался с выхода ПИКа для мелкого динамика. Получилось, что когда нажимаешь кнопки при установке времени - пищит только маленький динамик, а когда срабатывает таймер - пищат сразу оба динамика. Этот дополнительный усилочек собран на отдельной платке.

Сам таймер собран на двухсторонней печатной плате, нарисованной в . Архив приложен в конце статьи. Плата разведена под PIC в корпусе TSSOP с шагом 0,65мм.

Фото платы в процессе сборки/отладки.

Для питания таймера использовал простейший импульсный блок питания, собранный по этой схеме (саму схему взял готовую где-то в интернете). Подробно писать про него здесь нет никакого смысла, ибо это тема для отдельной статьи про импульсные блоки питания. Приведу лишь данные по намотке трансформатора. Сам каркас подходящего размера берется из энергосберегающей лампы или из сгоревшего китайского БП. Также его можно выдрать из цепи дежурки компьютерного БП или из монитора, но по размерам они будут немного больше. Для беспроблемной разборки каркаса и сердечника трансформаторов, я их окунаю в кипящую воду на 3-4 минуты и потом аккуратно, без больших усилий, разбираю. Дальше снимаем все старые обмотки и мотаем новые. Обмотки: 1-2 - 600 витков диаметром 0,08 - 0,1мм; 3-4 - 23 витка диаметром 0,3 - 0,55мм; 5-6 - 10 витков диаметром 0,08 - 0,1мм. Обмотка 1-2 намотана внавал, остальные виток к витку. Все обмотки необходимо хорошо заизолировать друг от друга. При намотке соблюдать направление и начало обмотки по точкам. Две половинки Ш-образных сердечников стыкуются через изоляционную прокладку (воздушный зазор ~ 0,1 мм).

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

Несколько фоток изготовления корпуса (небольшой ворклог). Особое внимание было уделено оформлению дисплея.

Ну и готовое устройство в сборе.

И напоследок про "сервисное меню", о котором упомянуто в начале текста. Если из режима установки секунд набрать "1", "1", "1", "1", "1" и "Старт", то кнопками "1" и "2" можно выбрать прямой или обратный отсчет времени. На индикаторе будет высвечиваться "Cu " (Count Up) или "Cd " (Count down). Выход из меню с сохранением настроек в EEPROM кнопкой "Старт".

Если набрать последовательность "2", "2", "2", "2", "2" (также из режима установки секунд) и "Старт" - кнопками "1" - "4" можно выбрать один из четырех вариантов звукового сигнала при срабатывании таймера. На индикаторе будет высвечиваться "A1 " -"A4 " (Alarm). Выход с сохранением настроек в EEPROM так же кнопкой "Старт".

Набрав "3", "3", "3", "3", "3" и "Старт" кнопками "1" - "4" можно выбрать один из четырех вариантов "бегущего огня" круговых светодиодов при срабатывании таймера. На индикаторе будет высвечиваться "E1 " -"E4 ".

Набрав "4", "4", "4", "4", "4" и "Старт" кнопками "1" - "4" можно выбрать один из четырех вариантов мигания семисегментных индикаторов при срабатывании таймера. На индикаторе будет высвечиваться "L1 " -"L4 ".

В архиве приложены платы таймера и блока питания (если кому надо) и прошивка контроллера. Фьюзы уже указаны в прошивке, ничего менять не надо. На плате таймера присутствует несколько керамических конденсаторов 0,1мкФ по питанию, не показанных на принципиальной схеме. Также есть пару деталей, обозначенных FB (ferrite bead) - это просто так называемые ферритовые бусинки, используемые в качестве перемычек.

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
IC1 МК PIC 8-бит

PIC16F636

1 В блокнот
IC2 Кодер, декодер

SN74LS155A

1 В блокнот
IC3 Регистр сдвига К561ИР2 1 В блокнот
IC4 Линейный регулятор

L78L05

1 В блокнот
VT1-VT3, VT13 Биполярный транзистор

КТ3107БМ

4 В блокнот
VT4-VT12 Биполярный транзистор

КТ3102БМ

29 В блокнот
D1-D4 Выпрямительный диод

1N4148

4 В блокнот
Q1 Кварцевый резонатор 20 МГц 1 В блокнот
C1, C2, C4 220 мкФ 3 В блокнот
C3, C5, C8 Электролитический конденсатор 100 мкФ 3 В блокнот
C6, C7 Конденсатор 22 пФ 2 В блокнот
C9 Конденсатор 0.1 мкФ 1 В блокнот
R1-R3 Резистор

1 кОм

3 В блокнот
R4-R6 Резистор

680 Ом

3