Таймер для кухни на pic16f628a. Таймер для кухни на PIC16F628A с энкодером. Описание работы простого таймера на PIC16F628A


Фото счётчика

"Реверсивный счётчик, который я предлагаю для повторения, собран на микроконтроллере PIC16F628A. Он имеет два входа управления «+1» и «-1», а также кнопку «Reset» (четвёртая кнопка зарезервирована и пока не используется). Мой предыдущий счётчик импульсов имел недоработку в нём была всего одна кнопка «+1» и при её длительном удержании счёт продолжался. Мой новый счётчик избавлен от этой недоделки. Как бы долго или коротко не была нажата кнопка входа, счёт продолжится только при её очередном нажатии. Максимальное количество поступивших импульсов 9999. При воздействии на вход «-1» счёт ведётся в обратном порядке до значения 0000. Показания счётчика сохраняются в памяти контроллера и при отключении питания. Сброс показаний счётчика и состояния памяти в 0 осуществляется при нажатии кнопки «Reset». Тех, кто решит повторить мою схему, пусть не пугает то, что при первом включении на индикаторе может высветиться непредсказуемая информация. При первом же нажатии на любую из кнопок всё станет на свои места и «мусора» больше не будет. Где и как можно использовать эту схему я пока ещё не придумал, но надеюсь, что она кому-нибудь принесёт пользу. И последнее если у кого-то под рукой не окажется нужного индикатора, а будет какой-нибудь другой (или даже 4 отдельных одинаковых индикатора), я готов помочь перерисовать печатку и переделать прошивку. Прикрепляю в архиве схему, плату и прошивки под индикаторы с общим анодом и общим катодом. Желаю всем удачи!"

Вместо индикатора GNQ-5641Ax-Bx можно применить любой другой индикатор с аналогичной распиновкой.


Схема, прошивки для индикаторов с общим анодом или катодом и печатная плата, скачать 66 кб.

Есть дополнение, которое позволяет сделать из устройства счётчик для намоточного станка. При этом, схема и печатная плата не изменяются. Отличие в назначении кнопок и в программе микронтроллера. Вход у счётчика один, кнопки "+" и "-" определяют направления счёта (инкремент и декремент). При инкременте горит правая точка, при декременте самая левая точка индикатора. Результат, а также направление счёта сохраняются в памяти МК. При включении питания настройки и счёт восстановливаются. Кнопкой "Reset" можно обнулить счёт. Скачать дополнение 20 кб.

Этот простой таймер на PIC16F628A можно использовать на кухни, да и не только на кухне, а везде где необходимо отсчитать промежуток времени от 1 до 99 минут. Основой является микроконтроллер PIC16F628A – достаточно популярный и не дорогой. В предыдущих статьях были рассмотрены различные конструкции на данном микроконтроллере, к примеру, .

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

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

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

Схема таймера — индикаторы с общим катодом

Схема таймера — индикаторы с общим анодом

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

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

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

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

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

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

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

Звуковой сигнал реализован с помощью аппаратного ШИМ встроенного в микроконтроллер. Динамическая головка должна иметь сопротивление порядка 50 ом. Можно применить и низкоомные динамические головки (4 или 8 ом), но в данном случае лучше установить малогабаритный выходной трансформатор, т.к. через 4 омную головку будет протекать большой ток, который может вызвать перегрузку блока питания и спровоцировать сброс микроконтроллера.

Печатная плата, вариант Алексея Антонова

Комментарии

1 2

0 #21 kaktuss 14.06.2015 16:08

Цитирую AntonChip:

Можно глянуть скриншот установки битов конфигурации при программировании


Спрашивал автора какую конфигурацию при прошивке, он ответил, что все есть уже в прошивке. Поэтому ничего не устанавливал, просто залил прошивку.
Я бы выложил скриншоты, но не знаю как. Может на почту Вам скинуть?
  • 24.09.2014

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

  • 08.10.2016

    MAX9710/MAX9711 — стерео/моно УМЗЧ с выходной мозностью 3 Вт имеющие режим пониженного потребления. Технические характеристики: Выходная мощность 3 Вт на нагрузке 3 Ом (при КНИ до 1%) Выходная мощность 2,6 Вт на нагрузке 4 Ом (при КНИ до 1%) Выходная мощность 1,4 Вт на нагрузке 8 Ом (при КНИ до 1%) Коэффициент подавления шумов …

  • 30.09.2014

    Характеристики: Диапазон воспроизводимых частот 88…108 МГц Реальная чувствительность 3 мкВ Выходная мощность УНЧ 2*2Вт Диапазон воспроизводимых частот 40…16000Гц Напряжение питания 3…9В Приемник построен на 2-х микросхемах CXA1238S и TEA2025B. CXA1238S содержит универсальный АМ\ЧМ радиоприемный тракт, выбор режима работы определяет лог. уровень на 15-ом выводе микросхемы. В состав ЧМ входит — …

  • 22.04.2015

    На рисунке № 1 показана схема простого индикатора сетевого напряжения. R1 ограничивает прямой ток через светодиод HL1. С1 используется в качестве балластного элемента, что позволило улучшить тепловой режим уст-ва индикации. При отрицательной полуволне сетевого напряжения стабилитрон VD1 работает как обычный диод, предохраняя светодиод от пробоя в обратным смещением. При положительной …

  • 21.09.2014

    В наше время, когда многие обзавелись дачей или домом в селе, где сварка является необходимостью, возникает проблема с ее приобретением. Покупка заводского аппарата осложняется его высокой стоимостью. Самая трудоемкая часть — изготовление самого сварочного трансформатора. При этом изготовитель сталкивается с проблемой приобретения магнитопровода. К магнитопроводу предъявляют следующие требования: достаточная площадь …

В микроконтроллерах есть полезная вещь – таймер. Таймер можно использовать как счётчик или с его помощью формировать импульсы заданной длины (ШИМ). С использованием таймера можно, например, построить часы или генератор.

В микроконтроллера 16 семейства есть 3 таймера: TRM0, TRM1 и TRM2. Каждый из них больше подходит для определённого типа работы. Рассмотрим эти таймеры подробнее:

  • 8-битный таймер (считает от 0 до 255)
  • тактируется от системной частоты или от внешнего источника
  • считает по переднему или заднему фронту сигнала
  • 8-битный предделитель
  • прерывание генерируется при переполнении (при переходе от 255 к 0)
  • таймер работает постоянно

Этот таймер можно использовать для генерации импульсов заданной длины или для подсчёта входящих импульсов.

OPTION_REG (OPTION в программе).

  • 16-битный таймер (0..65535)
  • может тактироваться как от внешнего источника сигналов, так и от
  • дополнительного часового кварца
  • максимально предделитель - 1:8
  • таймер считает только передние фронты сигнала
  • таймер может использоваться модулем CCP
  • таймер можно отключать

Применения аналогичные TMR0.

Управление таймером осуществляется регистром T1CON .

  • 8-битный таймер
  • тактируется только от системной частоты
  • предделитель 1:1 , 1:4 , 1:16
  • таймер можно отключать

Этот таймер имеет другой принцип работы. Таймер считает импульсы от нуля до заданного PR2 . После совпадения TRM2 и PR2 сигнал поступает на 4-битный постделитель и генерируется прерывание. Такая система позволяет генерировать частоты с минимальным шагом. Таймер может посылать сигналы на CCP в качестве базы тайминга ШИМа.

Управление таймером осуществляется регистром T2CON .

Пример

Перейдём к коду прошивки. В примере задействованы два счётчика TRM0 для счётчика входных импульсов и TRM1 для мигания 2-мя светодиодами.

Включим таймеры TRM0 для счётчика и TRM1 для мигания 2-мя светодиодами.

INTCON=0b11100000; // Настройка прерываний OPTION=0b00101000; // Настройка TMR0 T1CON =0b00110001; // Настройка TMR1 TMR1IE=1;

В основном коде программы только вывод значения счётчика на дисплей.

Void main() { low_init(); // инициализация МК InitLCD(); // инициализация дисплея TMR0=0; // обнуляем таймер TMR0 LED=0; // обнуляем переменную отвечающею за светодиоды while(1==1) { IntToLCD(0,0,TMR0); // вывести на дисплей содержимое таймера delay(1000); // задержка } }

Основное же действие разворачивается в обработчике прерываний.

Void interrupt isr(void) { if(T0IF) // при переполнение TMR0 { T0IF=0; // сбрасываем флаг о его переполнение } if(TMR1IF) // при переполнение TMR1 { LED++; // управление светодиодами if(LED>3) { LED=0; } PORTA=LED; TMR1IF=0; // сбрасываем флаг } }

В обработчике первого таймера TRM0: при его переполнение нечего полезного не происходит, только сбрасывается флаг переполнения. При переполнение второго таймера TRM1: светодиоды зажигаются по-новому (на них выводиться двоичный счётчик), и сбрасывается флаг переполнения второго таймера.

Ниже приведены фотография и видео работы таймеров из примера.