Таймер на pic для управления электроприборами

Таймер на PIC для управления электроприборами

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

Вариант 1

В состав данного устройства входит три таймера. Таймер 1.1 и таймер 1.2 каждый из них позволяет задавать время включения и выключения нагрузки, которая подключается к реле KV1. Таймер 2.1 и таймер 2.2 также позволяет задавать время включения и выключения нагрузки, которая подключается к общему реле KV2. Таймер 3 представляет собой обратный таймер, который управляет нагрузкой через KV3.

В данном устройстве применен микроконтроллер PIC16F628A. Элементы С1, С2, ZQ1 являются внешними частотозадающими элементами внутреннего тактового генератора. Для отображения информации используется индикатор HG1 с контроллером KS0066. Индикатор может отображать две строки по шестнадцать символов. Подстроечным резистором R4 можно регулировать контрастность изображения.

Помощью SB1-SB5 происходит управление режимами работы и индикации, а так же настройка таймера. Через выводы 1,17,18 микроконтроллера происходит управление транзисторами VT1-VT3 и далее реле KV1-KV3, которые включают либо отключают нагрузку.

При использовании реле с током катушки более 100 мА, то транзисторы КТ315В следует заменить на транзисторы максимально допустимый ток коллектора, которых больше тока катушки реле.

Режим отображения текущего времени.

Назначение клавиш управления в этом режиме:
SB5 – вход/выход в режим настройки текущего времени.
SB3, SB4 – перемещение курсора влево либо вправо при настройке.
SB1, SB2 – уменьшение либо увеличение значений времени при настройке.

Режим отображения таймера 1.1.

Если время включения установлено равным времени выключения то считается не используемым.

Назначение клавиш и управление ими такое же, как и в режиме текущего времени.

Таймеры 1.2, 2.1 и 2.2 по индикации и управлению аналогичны таймеру 1.1.

Режим отображения таймера 3

Таймер 3 – это обратный таймер.

Для входа в режим настройки таймера 3 необходимо нажать и удерживать, до появления мигающего курсора, кнопку SB5.

В режиме настройки перемещение курсора осуществляется кнопками SB3 и SB4, а изменение значений кнопками SB1 и SB2. При отсчете времени остановить таймер 3 можно нажав SB5.

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

Переключение между режимами отображения осуществляется кнопками SB1 и SB2.

Биты конфигурации микроконтроллера.

Вариант 2

Режим отображения текущего времени

Назначение клавиш управления в этом режиме:
SB5 – вход/выход в режим настройки текущего времени.
SB3, SB4 – перемещение курсора влево либо вправо при настройке.
SB1, SB2 – уменьшение либо увеличение значений времени при настройке.

Режим отображения таймера

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

Скачать список элементов (PDF)

Прикрепленные файлы:

  • ВАРИАНТ 1.hex (9 Кб)
  • ВАРИАНТ 2.hex (8 Кб)

Источник: http://cxem.gq/house/1-342.php

Таймер на PIC для управления электроприборами

Таймер на PIC для управления электроприборами

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

Вариант 1

В состав данного устройства заходит три таймера. Таймер 1.1 и таймер 1.2 любой из их позволяет задавать время включения и выключения нагрузки, которая подключается к реле KV1. Таймер 2.1 и таймер 2.2 также позволяет задавать время включения и выключения нагрузки, которая подключается к общему реле KV2. Таймер 3 представляет собой оборотный таймер, который управляет нагрузкой через KV3.

В данном устройстве использован микроконтроллер PIC16F628A. Элементы С1, С2, ZQ1 являются наружными частотозадающими элементами внутреннего тактового генератора. Для отображения инфы употребляется индикатор HG1 с контроллером KS0066. Индикатор может отображать две строчки по шестнадцать знаков. Подстроечным резистором R4 можно регулировать контрастность изображения.

Помощью SB1-SB5 происходит управление режимами работы и индикации, а так же настройка таймера. Через выводы 1,17,18 микроконтроллера происходит управление транзисторами VT1-VT3 и дальше реле KV1-KV3, которые включают или отключают нагрузку.

При использовании реле с током катушки более 100 мА, то транзисторы КТ315В следует поменять на транзисторы очень допустимый ток коллектора, которых больше тока катушки реле.

Режим отображения текущего времени.

Предназначение кнопок управления в этом режиме: SB5 — вход/выход в режим опции текущего времени. SB3, SB4 – перемещение курсора на лево или на право при настройке.

SB1, SB2 – уменьшение или повышение значений времени при настройке.

Режим отображения таймера 1.1.

Если время включения установлено равным времени выключения то считается не применяемым.

Предназначение кнопок и управление ими такое же, как и в режиме текущего времени.

Таймеры 1.2, 2.1 и 2.2 по индикации и управлению подобны таймеру 1.1.

Режим отображения таймера 3

Таймер 3 — это оборотный таймер.

Для входа в режим опции таймера 3 нужно надавить и задерживать, до возникновения мигающего курсора, кнопку SB5.

В режиме опции перемещение курсора осуществляется клавишами SB3 и SB4, а изменение значений клавишами SB1 и SB2. При отсчете времени приостановить таймер 3 можно нажав SB5.

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

Переключение меж режимами отображения осуществляется кнопками SB1 и SB2.

Биты конфигурации микроконтроллера.

Вариант 2

Режим отображения текущего времени

Предназначение кнопок управления в этом режиме: SB5 — вход/выход в режим опции текущего времени. SB3, SB4 – перемещение курсора на лево или на право при настройке.

SB1, SB2 – уменьшение или повышение значений времени при настройке.

Режим отображения таймера

Перечень радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот DD1 МК PIC 8-бит PIC16F628A 1 Поиск в win-sourceВ блокнотHG1 LCD 16x2BC1602B21 Поиск в win-sourceВ блокнотZQ1 Кварцевый резонатор4 МГц1 Поиск в win-sourceВ блокнотVD1-VD3 Диодик КД105Б 3 Поиск в win-sourceВ блокнотVT1-VT3 Биполярный транзистор КТ315В 3 Поиск в win-sourceВ блокнотC1, C2 Конденсатор15…30 пФ2 Поиск в win-sourceВ блокнотR1, R3, R5 Резистор 1 кОм 3 Поиск в win-sourceВ блокнотR2, R6 Резистор 4.7 кОм 2 Поиск в win-sourceВ блокнотR4 Подстроечный резистор10 кОм1 Поиск в win-sourceВ блокнотДобавить все

Скачать перечень частей (PDF)

ВАРИАНТ 1.hex (9 Кб) ВАРИАНТ 2.hex (8 Кб)
Таймер PIC Микроконтроллер

Источник: http://bloggoda.ru/2018/03/18/tajmer-na-pic-dlya-upravleniya-elektropriborami/

Циклический таймер

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

Рассмотрим схему электронного таймера, в котором цикличность работы и «отдыха», можно задавать раздельно.

Время задается переменными резисторами, в диапазоне от 90 секунд до 3 часов, раздельно, для каждого режима.

Величины задаваемых интервалов полностью зависят от параметров RC-цепей, с переменными резисторами в «R»-составляющих. В связи с этим, данный электронный таймер не обладает сверх большой точностью.

Схема состоит из таймерного узла на двоичном счетчике К561ИЕ16 (аналог 4020), отличающегося от «типового» тем, что у него имеется два регулируемых мультивибратора.

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

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

В исходном состоянии (после включения питания выключателем SB1) счетчик DD2 устанавливается в нулевое положение скачком зарядного тока конденсатора C2. На его выходе (вывод 3) будет логический ноль.

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

То есть, практически, параллельно выключателю этого электроприбора.

В то же время, ноль с вывода 3 DD2 проходит на вывод 9 DD1.4 и на базу VT1. При этом VT1 закрыт, на его коллекторе высокий уровень напряжения, который приходит на вывод 6 DD1.2. Отсюда получается что, мультивибратор, собранный на элементах DD1.3-DD1.

4 работает, импульсы с его выхода проходят через диод VD1 на счетный вход DD2. А мультивибратор на элементах DD1.1-DD1.2 не работает, на его выходе ноль.

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

Таким образом, начинается период включенного состояния электроприбора. Продолжаться это будет до тех пор, пока счетчик DD2 не доберется до 8192-го импульса. То есть, пока не появится единица на его выводе 3. Сколько на это уйдет времени, — зависит от сопротивления R7.

При появлении единицы на выводе 3 DD2 интервал включенного состояния электроприбора завершается, и начинается пауза. Транзисторы VT2-VT3 закрываются и реле K1 выключает электроприбор. А транзистор VT1 открывается. На вывод 9 DD1.4 проходит единица с выхода DD2, поэтому мультивибратор DD1.3- DD1.4 выключается.

На коллекторе VT1 напряжение падает до нулевого уровня. Это соответствует напряжению на выводе 6 DD1.2. Поэтому мультивибратор DD1.1-DD1.2 включается. Импульсы с его выхода через диод VD2 поступают на вход «C» счетчика DD2. С этого момента и начинается отсчет интервала паузы.

Светодиод HL1 индицирует включенное состояние реле K1.

В качестве источника питания годится любой сетевой адаптер с выходным номинальным напряжением 9-15В и током не ниже 150 мА.

Используя реле SC1240 можно коммутировать нагрузку при сетевом переменном напряжении 220В мощностью не более 2 кВт.

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

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

Вместо реле можно использовать какую-нибудь оптотиристорную или отпосимисторную схему. В этом случае транзистор VT3 и, соответственно, реле K1 из схемы исключаются. А светодиод оптопары подключают вместо резистора R13. Сопротивление R10 в этом случае нужно подобрать соответственно тому, какой ток должен протекать через светодиод оптопары.

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

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

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

Микросхему К561ЛЕ5 можно заменить импортным аналогом 4001, либо использовать микросхему К561ЛА7 (импортный аналог 4011). В этом случае (ЛА7 вместо ЛЕ5) нужно диоды VD1 и VD2 перевернуть и резистор R3 отключить от минуса и подключить к плюсу питания.

Теперь назначение R7 и R2 будет противоположным. Счетчик К561ИЕ16 можно заменить импортным аналогом 4020. Диоды КД522 заменимы на КД521, 1N4148. Транзисторы КТ315 и КТ361 можно заменить соответственно на КТ3102 и КТ3107, а так же, КТ503 и КТ502.

Светодиод — любой.

Резисторы R2 и R7 любые, но желательно с линейным законом изменения сопротивления. Налаживание сводится к градуировки шкал вокруг ручек переменных резисторов. При желании можно сделать другие диапазоны регулировки интервалов, изменив сопротивления R1 и R5 емкости C1 и C3.

скачать архив

Источник: https://kiloom.ru/sxema/ciklicheskij-tajmer.html

Таймер выключения нагрузки на PIC16F84

Читать все новости ➔

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

В основе прибора лежит схема автора А. МУРАВЬЕВА  (Журнал Радио №7 2006 г,  А. Муравьев, Таймер на PIC16F84).

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

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

После первоначальной зарядки конденсаторов С2 и СЗ программа переходит в фазу установки продолжительности выдержки. Циклически выполняется подпрограмма “OneShot”, заимствованная из статьи А. Долгого “Аналоговое управление в микроконтроллерном устройстве” (“Радио”. 2005, № 4, с.

33), а также проверяется состояние кнопки SB1. Светодиод HL1 погашен.

Полученное в результате работы подпрограммы число в зависимости от положения движка переменного резистора R1 может находиться в пределах 1 .254 Программа преобразует его в продолжительность выдержки в минутах, причем каждым трем последовательным значениям этого числа соответствуют одинаковые выдержки. Таким образом, максимальная выдержка — 255/3 = 85 мин.

Установленное значение программа выводит на двухразрядный цифровой индикатор HG1.HG2. Обнаружив нажатие на кнопку SB1, программа переходит в фазу отсчета выдержки, сигнализируя об этом включением светодиода HL1. Фактически идет подсчет прерываний от таймера TMR0.

Так как он настроен (вместе с предварительным делителем) на коэффициент пересчета 4000, а период повторения счетных импульсов при частоте кварцевого генератора 4 МГц равен 1 мкс, прерывания происходят каждые 4 мс.

Как только их число достигнет 15000 (это значит, что прошло 0,004×15000 = 60 с), программа уменьшает выведенное на индикатор значение на единицу и начинает подсчет прерываний заново. Когда заданное число минут пройдет, с выхода RA4 микроконтроллера через усилитель на транзисторе VT1 на динамическую головку ВА1 поступит прерывистый сигнал частотой 1000 Гц.

Через 6 с сигнал прекратится и программа таймера вернется в фазу установки выдержки. Если кнопка SB1 нажата до истечения установленной выдержки, таймер прекращает ее дальнейший отсчет и, не подавая звуковой сигнал, переходит в фазу установки. При переходах из одной фазы в другую программой предусмотрены секундные паузы, до истечения которых кнопку SB1 необходимо отпустить.

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

Питать таймер можно от любого источника постоянного напряжения 3…5 В, желательно стабилизированного. Потребляемый ток не превышает 100 мА. Переменный резистор должен быть с линейной характеристикой регулирования. Светодиодные индикаторы АЛС324Б можно заменить другими с общим анодом, а микроконтроллер PIC16F84A — более ранней моделью PIC16F84.

Для коммутации нагрузки используется  симистор BT138-600. Гальваническая развязка осуществляется с помощью оптосимистора МОС3061.  Точки 1, 2 подключаются к светодиоду схемы А. МУРАВЬЕВА.

  Чтобы увидеть ссылку войдите или зарегистрируйтесь

Возможно, Вам это будет интересно:

Источник: http://meandr.org/archives/182

Циклический таймер на PIC16F628

Дата публикации: 05 сентября 2012.

Рейтинг:  5 / 5

График коммутации нагрузки:

Код программы написан на языке ассемблер. Прибор управляется одной кнопкой. Для визуального отображения информации служит дисплей со встроенным контроллером.

Микроконтроллер DD1 имеет функциональные выводы RA0, RA1, RB0 – RB5, которые служат для ввода и вывода информации. Микроконтроллер DD1 не имеет функции принудительного сброса, вывод для сброса подключен через резистор R1 к положительному потенциалу питания. Для генерации тактовой частоты в микроконтроллере используется встроенный RC-генератор тактовой частоты на кристалле.

К выводу RA1 через токоограничительный резистор R3 подключена тактовая кнопка SB1. В отжатом положении тактовой кнопки SB1 резистор R7 имитирует низкий логический уровень. Микроконтроллер DD1 распознаёт три состояния тактовой кнопки SB1:1. не нажата;2. нажата кратковременно (менее 1 с);

3. нажата и удерживается (более 1 с).

Изображение на дисплее помогает различать состояния тактовой кнопки SB1. Так при 1 состоянии микроконтроллер выполняет инструкции не связанные с нажатием кнопки, при 2 состоянии происходит управление в данном состоянии, пока микроконтроллер не распознает 3 состояние, а в 3 состоянии дисплей изображает следующие управляемое состояние.

К выводу RA0 через токоограничительный резистор R2 подключено твёрдотельное реле U1, которое включает и выключает подключенный к клеммнику X1 нагрузку. Твердотельное реле U1 может коммутировать нагрузку при переменном напряжении 48-530 В и максимальном токе 3 А (рабочая температура твердотельного реле U1 не должна превышать +60 °С).

Для отображения информации используется жидкокристаллический дисплей HG1. Он имеет контроллер, в котором реализована функция знакогенерации. Отображает две строки по шестнадцать символов в каждой. Управление дисплеем осуществляется через выводы микроконтроллера RB0 – RB5.

Загрузка данных происходит полубайтами, через выводы RB2 – RB5. «Защёлка» – RB1.  Выбор регистра сигнала формируем на выводе RB0. Резисторами R5 и R6 устанавливаем контрастность дисплея HG1. Подсветка дисплея HG1 подключается к питанию через токоограничительный резистор R4.

Дисплей HG1 прикручивается к плате 3 x 15 мм латунными стойками и 3 x 6 мм винтами.

Для точного счёта времени модулем TMR1 был использован внешний генератор на базе кварцевого резонатора ZQ1 с ёмкостями C2 и C3. Кварцевый резонатор ZQ1 с ёмкостями C2 и C3 подключен к выводам T1OSI и T1OSO. Точность хода времени 1 секунда.

Прибор запитывается от переменного или постоянного источника напряжения, подключаемого к разъему X2. Номинальное напряжение источника питания 9 – 15 В.  Номинальный ток источника питания 0.5 А.

Для стабилизации питания используется обычная схема из диодного моста VD1, линейного стабилизатора DA1, фильтрующих конденсаторов C1, C4, C5, C6. При питании устройства постоянным напряжением 12 В максимальный потребляемый ток составляет 60 мА.

Прибор может эксплуатироваться в диапазоне температур от –20 °С до +60 °С.

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

По умолчанию: первое состояние нагрузки – выключено, время удержания первого состояния 1 с, время удержания инверсного состояния 1 с, количество циклов – 1. Прибор переходит в исходное рабочее состояние, т.е. 2.2. Таймер отключен. Прибор выводит на дисплее в верхней строке «S(DE)* 00:00:00**», в нижней строке «C(00)*** 00:00:00****».

После кратковременного нажатия тактовой кнопки включается таймер, т.е. 3. Если тактовая кнопка нажата и удерживается более 1 с, то прибор переходит в состояние где происходит выбор первого состояния нагрузки, т.е. 4.3. Прибор выводит на дисплее в верхней строке «Number of starts», в нижней строке «00001»*****.

После кратковременной паузы прибор выводит на дисплее в верхней строке «S(ED)* 00:00:01**», в нижней строке «C(01)*** 00:00:01****». С начало происходить декрементирование  времени 1, когда время 1 обнулиться произойдёт инверсия состояния нагрузки и будет происходить декрементирование времени 2, когда обнулиться время 2, произойдёт декрементирование числа циклов.

После этого, если число циклов не равно нулю, произойдёт загрузка настроенного ранее времени 1 и 2 и нагрузка перейдёт в первое состояние, начнётся следующий цикл. Если число циклов равно нулю, тогда происходит отключение таймера, т.е. 2. Все изменения таймера отображает дисплей. После кратковременного нажатия тактовой кнопки происходит рестарт, т.е. 3.

Если тактовая кнопка нажата и удерживается более 1 с, то прибор переходит в состояние где происходит выбор первого состояния нагрузки, т.е. 4.4. Таймер отключен. Прибор выводит на дисплее в верхней строке «First state», в нижней строке «Disable». После кратковременного нажатия тактовой кнопки происходит выбор первого состояния нагрузки.

Если тактовая кнопка нажата и удерживается более 1 с, то прибор переходит в состояние где происходит индикация времени удержания первого состояния нагрузки, т.е. 5.5. Прибор выводит на дисплее в верхней строке «Time 1», в нижней строке «00:00:01». После кратковременного нажатия тактовой кнопки происходит настройка секунд, т.е. 6.

Если тактовая кнопка нажата и удерживается более 1 с, то прибор переходит в состояние где происходит индикация времени удержания инверсного состояния нагрузки, т.е. 9.6. Прибор выводит на дисплее в верхней строке «Time 1», в нижней строке «00:00:[01]». После кратковременного нажатия тактовой кнопки происходит инкрементирование секунд.

Если тактовая кнопка нажата и удерживается более 1 с, то прибор переходит в состояние где происходит настройка минут, т.е. 7.7. Прибор выводит на дисплее в верхней строке «Time 1», в нижней строке «00:[00]:01». После кратковременного нажатия тактовой кнопки происходит инкрементирование минут.

Если тактовая кнопка нажата и удерживается более 1 с, то прибор переходит в состояние где происходит настройка часов, т.е. 8.8. Прибор выводит на дисплее в верхней строке «Time 1», в нижней строке «[00]:00:01». После кратковременного нажатия тактовой кнопки происходит инкрементирование часов.

Если тактовая кнопка нажата и удерживается более 1 с, происходит индикация времени удержания первого состояния нагрузки, т.е. 5.9. Прибор выводит на дисплее в верхней строке «Time 2», в нижней строке «00:00:01». После кратковременного нажатия тактовой кнопки происходит настройка секунд, т.е. 10.

Если тактовая кнопка нажата и удерживается более 1 с, то прибор переходит в состояние где происходит настройка количества циклов, т.е. 13.10. Прибор выводит на дисплее в верхней строке «Time 2», в нижней строке «00:00:[01]». После кратковременного нажатия тактовой кнопки происходит инкрементирование секунд.

Если тактовая кнопка нажата и удерживается более 1 с, то прибор переходит в состояние где происходит настройка минут, т.е. 11.11. Прибор выводит на дисплее в верхней строке «Time 2», в нижней строке «00:[00]:01». После кратковременного нажатия тактовой кнопки происходит инкрементирование минут.

Если тактовая кнопка нажата и удерживается более 1 с, то прибор переходит в состояние где происходит настройка часов, т.е. 12.12. Прибор выводит на дисплее в верхней строке «Time 2», в нижней строке «[00]:00:01». После кратковременного нажатия тактовой кнопки происходит инкрементирование часов.

Если тактовая кнопка нажата и удерживается более 1 с, происходит индикация времени удержания инверсного состояния нагрузки, т.е. 9.13. Прибор выводит на дисплее в верхней строке «Cycles», в нижней строке «01». После кратковременного нажатия тактовой кнопки происходит инкрементирование числа циклов. Если тактовая кнопка нажата и удерживается более 1 с, происходит переход в состояние сохранения, т.е. 14.14. Прибор выводит на дисплее в верхней строке «Saving data». Прибор проверяет время 1 и 2 на равенство нулю, если это так, тогда прибор исправляет на минимальное значение, т.е. 00:00:01 для времени 1 и 00:00:01 для времени 2. Затем прибор сохраняет настройки в EEPROM памяти и переходит в исходное рабочее состояние, т.е. 2.* S(ED), где S – Status, первое E – Enable таймер включен, второе D – Disable нагрузка выключена.** 00:00:01 – Первое время – время удержания первого состояния.*** С(01), где С – Cycles, 01 – число циклов, а если например C(EC), Endless cycle- Бесконечный цикл, в данном случае индикации числа циклов не происходит.**** 00:00:01 – Второе время – время удержания инверсного состояния.

***** 00001 – счётчик числа включения таймера или рестартов, максимальное значение 65535, после чего происходит обнуление и подсчёт начинается заново.

В данном устройстве можно заменить следующие детали. Микроконтроллер  DD1 из серии PIC16F628A-I/P-xxx с рабочей тактовой частотой 20 МГц в корпусе DIP18. Дисплей HG1 подойдет любой из серии WH1602x. Стабилизатор напряжения DA1 отечественный КР142ЕН5А (5 В, 1.5 А).

Диодный мост VD1 можно применить любой из серии 2Wxx. Твёрдотельное реле U1 можно найти аналогичное в крайнем случае заменить на CX240D5 с другими характеристиками. Разъём питания X2 аналогичный указанному на схеме с центральным контактом d=2.1 мм.

Неполярные конденсаторы С1 и С6 номиналом 0.01 – 0.47 µF x 50 V.

Источник: https://radioparty.ru/device-pic/415-cycle-timer-pic16f628

Программируемый таймер на PIC16F628A

Цифровой программируемый таймер – это устройство для управления включением/выключением внешних устройств по заданной программе.
Устройство собрано на 8-разрядном микроконтроллере Microchip PIC16F628A.

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

Максимальный временной интервал для каждой операции (включение/выключение) составляет 99 часов 59 минут.

В устройстве для управления используется 4-х кнопочная клавиатура, дляотображения текущих настроек и параметров установлен 2-строчный ЖКдисплей на базе контроллера HD44780.

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

Для управления нагрузкой в устройстве используется 5 В реле, управляемое транзистором PN2222.В свою очередь, транзистором управляет микроконтроллер по линииввода/вывода RB3. Клавиатура подключена к выводам порта RA2, RA3, RA4 иRB0. Назначение кнопок мы рассмотрим ниже.

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

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

На схеме видно, что выводы 15 и 16 ЖК индикатора не подключены. Онииспользуются в индикаторах с фоновой подсветкой. Если вы будетеиспользовать индикатор с подсветкой, то вы можете подключить ее кисточнику питания через гасящий резистор номиналом 39 Ом.

Настройка и работа с устройством

Как уже было отмечено выше, все настойки таймера выполняются с клавиатуры.

Функции кнопок:

    * кнопка «ON/OFF Time»      Таймер позволяет устанавливать время включения и время выключения. При включении таймера проходит инициализация, и оба временных параметра (время включения и время выключения) имеют значение 0. Нажимая на данную кнопку, можно переключаться между этими параметрами;      

    * кнопка «Select»

      С помощью данной кнопки пользователь может переключаться между значениями выбранного параметра (часы, минуты времени включения и выключения). Инкрементирование значения происходит по нажатию кнопки «ON/OFF Time»;      

    * кнопка «Enter»

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

    * кнопка «Start/Stop»

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

По нажатию копки «Start/Stop» таймер начинает отсчет временивыключенного состояния. По окончании этого интервала срабатывает реле иначинается отсчет времени включенного состояния.

Программное обеспечение для микроконтроллера разработано с применением компилятора MicroC Pro для PIC микроконтроллеров.

Источник: http://elektro-shemi.ru/programmiruemyj_tajmer_na_pic16f628a.html

Таймер на pic16f628a

Это очередная поделка из хлама – таймер для кухни, хотя и не обязательно для кухни. В ход пошли детали которые валялись без дела, в частности старые индикаторы АЛСки, резисторы выпаянные из старых плат и т.д.

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

А архиве лежит две прошивки, первая просто таймер, а вторая с некоторыми наворотами, об этом ниже.

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

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

Теперь нажатием кнопки снимается звуковой сигнал и девайс возвращается в исходное состояние – режим установки времени. Так работает первая версия прошивки.

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

Во время отсчета времени, если осталась одна минута, на дисплее индицируются секунды от 60 до 00. Когда сработал звуковой сигнал, звучать он будет не бесконечно, а около 20 секунд. Далее дисплей начинает индицировать анимационную заставку (отличную от той, которая в режиме установки).

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

Обе прошивки доступны и лежат в архиве вместе с рисунком печатной платы.

Звуковой сигнал реализован с помощью аппартаного ШИМ встроенного в микроконтроллер. Динамическая головка должна иметь сопротивление порядка 50 ом.

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

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

Скачать – рисунки печатных плат и прошивки микроконтроллера 

Раздел: [Устройства на микроконтроллерах]

Источник: http://www.cavr.ru/article/2262-tajmer-na-pic16f628a

Ссылка на основную публикацию
Adblock
detector
",css:{backgroundColor:"#000",opacity:.6}},container:{block:void 0,tpl:"
"},wrap:void 0,body:void 0,errors:{tpl:"
",autoclose_delay:2e3,ajax_unsuccessful_load:"Error"},openEffect:{type:"fade",speed:400},closeEffect:{type:"fade",speed:400},beforeOpen:n.noop,afterOpen:n.noop,beforeClose:n.noop,afterClose:n.noop,afterLoading:n.noop,afterLoadingOnShow:n.noop,errorLoading:n.noop},o=0,p=n([]),h={isEventOut:function(a,b){var c=!0;return n(a).each(function(){n(b.target).get(0)==n(this).get(0)&&(c=!1),0==n(b.target).closest("HTML",n(this).get(0)).length&&(c=!1)}),c}},q={getParentEl:function(a){var b=n(a);return b.data("arcticmodal")?b:(b=n(a).closest(".arcticmodal-container").data("arcticmodalParentEl"),!!b&&b)},transition:function(a,b,c,d){switch(d=null==d?n.noop:d,c.type){case"fade":"show"==b?a.fadeIn(c.speed,d):a.fadeOut(c.speed,d);break;case"none":"show"==b?a.show():a.hide(),d();}},prepare_body:function(a,b){n(".arcticmodal-close",a.body).unbind("click.arcticmodal").bind("click.arcticmodal",function(){return b.arcticmodal("close"),!1})},init_el:function(d,a){var b=d.data("arcticmodal");if(!b){if(b=a,o++,b.modalID=o,b.overlay.block=n(b.overlay.tpl),b.overlay.block.css(b.overlay.css),b.container.block=n(b.container.tpl),b.body=n(".arcticmodal-container_i2",b.container.block),a.clone?b.body.html(d.clone(!0)):(d.before("
"),b.body.html(d)),q.prepare_body(b,d),b.closeOnOverlayClick&&b.overlay.block.add(b.container.block).click(function(a){h.isEventOut(n(">*",b.body),a)&&d.arcticmodal("close")}),b.container.block.data("arcticmodalParentEl",d),d.data("arcticmodal",b),p=n.merge(p,d),n.proxy(e.show,d)(),"html"==b.type)return d;if(null!=b.ajax.beforeSend){var c=b.ajax.beforeSend;delete b.ajax.beforeSend}if(null!=b.ajax.success){var f=b.ajax.success;delete b.ajax.success}if(null!=b.ajax.error){var g=b.ajax.error;delete b.ajax.error}var j=n.extend(!0,{url:b.url,beforeSend:function(){null==c?b.body.html("
"):c(b,d)},success:function(c){d.trigger("afterLoading"),b.afterLoading(b,d,c),null==f?b.body.html(c):f(b,d,c),q.prepare_body(b,d),d.trigger("afterLoadingOnShow"),b.afterLoadingOnShow(b,d,c)},error:function(){d.trigger("errorLoading"),b.errorLoading(b,d),null==g?(b.body.html(b.errors.tpl),n(".arcticmodal-error",b.body).html(b.errors.ajax_unsuccessful_load),n(".arcticmodal-close",b.body).click(function(){return d.arcticmodal("close"),!1}),b.errors.autoclose_delay&&setTimeout(function(){d.arcticmodal("close")},b.errors.autoclose_delay)):g(b,d)}},b.ajax);b.ajax_request=n.ajax(j),d.data("arcticmodal",b)}},init:function(b){if(b=n.extend(!0,{},a,b),!n.isFunction(this))return this.each(function(){q.init_el(n(this),n.extend(!0,{},b))});if(null==b)return void n.error("jquery.arcticmodal: Uncorrect parameters");if(""==b.type)return void n.error("jquery.arcticmodal: Don't set parameter \"type\"");switch(b.type){case"html":if(""==b.content)return void n.error("jquery.arcticmodal: Don't set parameter \"content\"");var e=b.content;return b.content="",q.init_el(n(e),b);case"ajax":return""==b.url?void n.error("jquery.arcticmodal: Don't set parameter \"url\""):q.init_el(n("
"),b);}}},e={show:function(){var a=q.getParentEl(this);if(!1===a)return void n.error("jquery.arcticmodal: Uncorrect call");var b=a.data("arcticmodal");if(b.overlay.block.hide(),b.container.block.hide(),n("BODY").append(b.overlay.block),n("BODY").append(b.container.block),b.beforeOpen(b,a),a.trigger("beforeOpen"),"hidden"!=b.wrap.css("overflow")){b.wrap.data("arcticmodalOverflow",b.wrap.css("overflow"));var c=b.wrap.outerWidth(!0);b.wrap.css("overflow","hidden");var d=b.wrap.outerWidth(!0);d!=c&&b.wrap.css("marginRight",d-c+"px")}return p.not(a).each(function(){var a=n(this).data("arcticmodal");a.overlay.block.hide()}),q.transition(b.overlay.block,"show",1*")),b.overlay.block.remove(),b.container.block.remove(),a.data("arcticmodal",null),n(".arcticmodal-container").length||(b.wrap.data("arcticmodalOverflow")&&b.wrap.css("overflow",b.wrap.data("arcticmodalOverflow")),b.wrap.css("marginRight",0))}),"ajax"==b.type&&b.ajax_request.abort(),p=p.not(a))})},setDefault:function(b){n.extend(!0,a,b)}};n(function(){a.wrap=n(document.all&&!document.querySelector?"html":"body")}),n(document).bind("keyup.arcticmodal",function(d){var a=p.last();if(a.length){var b=a.data("arcticmodal");b.closeOnEsc&&27===d.keyCode&&a.arcticmodal("close")}}),n.arcticmodal=n.fn.arcticmodal=function(a){return e[a]?e[a].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof a&&a?void n.error("jquery.arcticmodal: Method "+a+" does not exist"):q.init.apply(this,arguments)}}(jQuery)}var debugMode="undefined"!=typeof debugFlatPM&&debugFlatPM,duplicateMode="undefined"!=typeof duplicateFlatPM&&duplicateFlatPM,countMode="undefined"!=typeof countFlatPM&&countFlatPM;document["wri"+"te"]=function(a){let b=document.createElement("div");jQuery(document.currentScript).after(b),flatPM_setHTML(b,a),jQuery(b).contents().unwrap()};function flatPM_sticky(c,d,e=0){function f(){if(null==a){let b=getComputedStyle(g,""),c="";for(let a=0;a=b.top-h?b.top-h{const d=c.split("=");return d[0]===a?decodeURIComponent(d[1]):b},""),c=""==b?void 0:b;return c}function flatPM_testCookie(){let a="test_56445";try{return localStorage.setItem(a,a),localStorage.removeItem(a),!0}catch(a){return!1}}function flatPM_grep(a,b,c){return jQuery.grep(a,(a,d)=>c?d==b:0==(d+1)%b)}function flatPM_random(a,b){return Math.floor(Math.random()*(b-a+1))+a}