Идеи

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

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

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

Предлагаю к повторению несложную схему бытового (кухонного) таймера на 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

ТАЙМЕР НА МИКРОКОНТРОЛЁРЕ

В интернете, журнале "Радио", а также других изданиях радио технической направленности, было опубликовано немало описаний устройств, предназначенных для отсчёта временных интерва­лов, иначе называемых таймерами. Сложность их схем варьиру­ется от простых, с времязадающими RC -цепями, до сложных на цифровых интегральных микросхемах с кварцевым генерато­ром. В последнее время появились разработки конструкций тай­меров на микроконтроллерах. Продолжая эту тему, я пред­лагаю ещё одну конструкцию, автора С.РЫЧИХИН, из г.Первоуральск, выполненную на микроконтрол­лере, в которой отсутствует кварцевый резонатор

Таймер предназначен для использо­вания в быту, например на кухне. Интервал изменения выдержек време­ни - от 1 до 100 мин при дискретности 1 мин. Схема устройства показана на рис. 1 .


В нём отсутствует кварцевый резонатор, а для формирования такто­вого сигнала использован RC -генератор, входящий в состав микроконтрол­лера. Стабильности частоты этого гене­ратора вполне достаточно для такого таймера. Кроме того, для повышения точности отсчёта реализована возмож­ность коррекции скорости счёта тайме­ра. По окончании заранее установлен­ного временного интервала таймер подаст звуковой сигнал и через опреде­лённое время перейдёт в "спящий" режим ( Power Down ), при котором энер­гопотребление мало (потребляемый ток - около 1 мкА), поэтому выключа­теля питания в устройстве нет В качестве устройства ввода инфор­мации в микроконтроллер применён энкодер (валкодер) S 1 . Для вывода ин­формации предназначен четырёхраз­рядный светодиодный индикатор HG 1, работающий в режиме динамической индикации. Его элементы (катоды светодиодов) подключены к линиям порта РВО-РВ7 микроконтроллера, а тран­зисторы VT 1 - VT 4 управляются сигна­лами с линий PDO , PD 1 , PD 4, PD 6 и подают питание на разряды индикато­ра. Сигнал окончания временного ин­тервала поступает с линии порта PD 5 на транзистор VT 5, который подаёт питающее напряжение на акустический сигнализатор НА1 со встроенным гене­ратором. Элементы R 1, VD 1, С1 фор­мируют сигнал обнуления микроконт­роллера.

После подачи питающего напряже­ния или кратковременного нажатия на кнопку SB 2 "Установка" ("Уст.") на индикатор в течение 1,5 с выводится визуальный эффект "бегущий огонь". После чего таймер переходит в режим установки выдержки времени. Враще­нием ручки энкодера устанавливают нужное число минут и нажимают на кнопку SB 1 "Пуск" - отсчёт времени начался. На индикаторе отображается оставшееся время в минутах и секун­дах. По окончании времени выдержки на индикатор выводятся мигающие символы "- 0 -" и звучит прерывистый звуковой сигнал. Приблизительно че­рез минуту таймер выключится сам - микроконтроллер перейдёт в "спящий" режим. Приостановить работу таймера можно, нажав на кнопку SB 2 "Уст.", и он перейдёт в режим установки времени. Если не нажимать на кнопки и не вра­щать энкодер, таймер через минуту также выключится. В устройстве применены резисторы МЛТ, С2-23 или импортные, оксидные конденсаторы - К50-35 или импортные С2 - К10-17. Замена диода КД522А - любым из серий КД509, КД510, КД522, КД521. Транзисторы КТ361Б можно за­менить любыми серий КТ361, КТ3107, а КТ315Б - серий КТ315, КТ3102. Зву­ковой сигнализатор - EMX -7 TA 6 SP , EMX -703 SP , НРМХ14АХ. Кнопка SB 1 SB 2) - ПКн159, SWT -6 с длинным тол­кателем. В зависимости от типа приме­нённого энкодера кнопка SB 2 "Уст." может быть как встроенной в него, так и отдельной (аналогичной SB 1), в по­следнем случае её размещают на плате рядом с энкодером. Можно применить энкодер без дополнительной кнопки РЕС11-411 5 F - N 001 8 или с кнопкой РЕС11-41 15 F - S 0018 (на него рассчита­на печатная плата на рис. 3 .

Все элементы, кроме батареи питания, размещены на двух печатных платах, чертежи которых показаны на рис. 2 и рис. 3 . Обратите внимание, что последовательно с акустическим излучателем НА1 включена перемычка, она заменяет резистор, который можно установить для снижения громкости звукового сигнала. Платы вместе с держателем элементов батареи установлены в пластмассовом корпусе размерами 40x80x110 мм и соединены между собой изолированными проводами. В верхней крышке сделаны отверстия для индикатора, оси энкодера и толкателя кнопки. Питание таймера производится от батареи из трёх соединённых последовательно гальванических элементов типоразмера AAA. В режиме индикации потребляемый ток составляет 25...50 мА.

На рис. 4 показаны платы устройст­ва в сборе.

На рис. 5 - конфигурация микроконтроллера при его программировании.


Полностью собранный таймер изображён на рис. 6 .


По окончании сборки устройство начинает работать сразу после подачи питания. Но так как частота встроенного RC-генератора у различных экземпляров микроконтроллеров отличается, необходимо выполнить регулировку точности хода таймера. Для этого в устройстве предусмотрен режим коррекции. Для того чтобы войти в этот режим, нужно установить число 22 на индикаторе и нажать на кнопку SB2 "Уст.". На индикаторе появится текущее значение константы коррекции, которая будет записана в регистре OCR1A таймера-счётчика Т1 микроконтроллера. По умолчанию значение константы равно 2500. Энкодером изменяют это значение в большую или меньшую сторону.
Точную цифру подбирают экспериментально. Для этого при первом включении, не изменяя константу, устанавливают выдержку 10 мин. Нажимают на кнопку SB1 "Пуск" и засекают точное время выдержки. Определив разницу хода в секундах, делят её на 600 и получают отклонение за 1 с. Поделив полученный результат на 0,000064, находят число, на которое следует изменить значение константы коррекции. Если таймер "спешит", значение константы увеличивают, если "отстаёт" - уменьшают. В авторском варианте таймера значение константы коррекции установлено 2917. Для выхода из режима коррекции нажимают на кнопку SB1 "Пуск", значение константы будет занесено в EEPROM микроконтроллера. В режиме коррекции функция автоматического отключения питания не действует. Если константа была скорректирована, об этом сообщит короткий звуковой сигнал, звучащий после подачи питающего напряжения. Визуальный эффект можно отключить, если в режиме установки времени выставить на индикаторе число 23, нажать на кнопку SB2 "Уст." и затем, установив 0 взамен 1, нажать на кнопку SB1 "Пуск"

Ну и как всегда файлы для поторения данного устройство можно качнуть по ссылкам прведенным ниже. Удачи!!!

Это схема таймера на микроконтроллере 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 необходимо отключить. Если изменять настройки времени планируется не часто, то вместо выключателей можно использовать перемычки. Прошивку, исходник и проект в Протеусе можно взять по ссылке выше

Данная схема таймера на микроконтроллере PIC16F684 позволяет осуществлять независимый выбор момента выключения и включения нагрузки. Отличительным качеством данного таймера служит использование ЖК-индикатора SoG со встроенным последовательным интерфейсом.

Описание работы таймера на микроконтроллере

Индикатор имеет 8 семи-сегментных цифр. Индикация времени начинается четырьмя цифрами посередине. Часы и минуты разделяются десятичной точкой. Индикация включенной или выключенной нагрузки таймера отображается с правой стороны индикатора (0 –выключено,1 – включено)

Все управление таймером осуществляется посредством 4-х кнопок. Если нажать и удерживать кнопку «Установка» на протяжении 2 секунд, то активируется режим установки. Сначала устанавливается реальное время (часы и минуты). После установки времени необходимо один раз нажать на «установка»

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

Функционирование микроконтроллера осуществляется от встроенного RC-генератора частотой 8 МГц. Схема внутренних часы функционируют от кварцевого генератора 32768 Гц. Все основное время микроконтроллер находится в режиме sleep, поэтому среднее значение тока потребления составляет примерно 5…7 мкА.

В роли ключа используется IRLML2502 (BSS138). Тактильные кнопки произвольные. Прочие радиоэлементы SMD. Штекер для программирования микроконтроллера PLS5 с нумерацией выводов как в PICKit2.