Отключаемые счетчики электроэнергии на пульте. Все с документами пломбами, гарантией и без посредников!

Простой таймер на PIC16F84A

Простой таймер на PIC16F84A

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

Схема таймера довольно простая:

Таймер рассчитан на пять вариантов отсчета времени(5, 10, 15, 20 и 30 минут). Интервал задается путем нажатия на кнопку, соответствующую выбранному значению. Так для 5-ти минут это будет кнопка SB1, для 20-ти естественно SB4.Так же при нажатии на кнопку устройство подает звуковой сигнал (подтверждение нажатия), такой же звуковой сигнал будет дан по окончании отсчета времени. Так же во время отсчета будет светиться светодиод D1.

Работа с устройством сводиться к минимуму – нужно лишь нажать кнопку и все. Но у этого таймера есть небольшой недостаток – если кнопка была нажата и идет отсчет времени, то выбрать другой интервал отсчета невозможно. Этот недостаток можно обойти, если включить еще одну кнопку в схему. Пускай она называется SB6. Итак, эту кнопку нужно подключить одним контактом к общему проводу, а вторым  к участку цепи R1 – 4-й вывод микроконтроллера U1. Нажатие на эту кнопку перезапустит программу, которая находится в микроконтроллере, независимо от того, выполняет он ее или нет.

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

Топология печатной платы в программе ARES (входит в PROTEUS) выглядит так:

Красные дорожки – это дорожки со стороны деталей, синие – со стороны компонентов.

В реальном варианте выглядит примерно так (если использовали вы мою разводку печатной платы):

Микроконтроллер работает по такому алгоритму:

Как видите программа не сложная. Пока ни одна кнопка не нажата, ничего не предпринимается, но если какая-то из кнопок будет нажата (например, SB1) то программа сначала сгенерирует тональный сигнал на выводе 10 микроконтроллера (порт A бит 1). Далее подаст уровень логической единицы на вывод 18 (порт А бит 4). После этих действий программа отсчитывает 5-ть минут, опять генерирует тоновый сигнал на десятом выводе и посылает уровень логического нуля на четвертый бит порта А микроконтроллера. Аналогичные действия программа выполняет и при нажатии остальных кнопок, лишь время задержки отличается. Для заливки прошивки в микроконтроллер можно использовать программу PonyProg2000. Вот вариант выставления конфигурационных битов микроконтроллера:

Это означает, что бит защиты выключен, таймер по включению питания выключен, сторожевой таймер выключен, выбран режим XT тактового генератора. В программе IC-Prog это выглядит так:

Детали и их замены:

В этом устройстве я не использовал дефицитных деталей, но все же микроконтроллер PIC16F84A может вызвать удивление среди опытных радиолюбителей, так как уже устарел. Вместо него можно использовать практически аналогичный PIC16F628A(хоть их архитектура и очень схожа, в архиве для него есть отдельный программный файл). Резисторы можно использовать с сопротивлением 2-5,6 k. Конденсаторы для задающего генератора – керамические дисковые (можно найти в любом китайском радиоприемнике), номиналом в 22-68 pf. Кварцевый резонатор нужно взять на частоту 4.000 MHz. Кнопки можно взять любые, так как они все равно устанавливаются за пределами платы, поэтому все зависит от того,  в каком корпусе вы планируете собирать устройство.

Конструкция:

Вот возможный вариант расположения платы и деталей в корпусе:

Скачать исходники, прошивку, проект в Proteus и Flowcode

Автор: Ресин Евгений Евгеньевич (radist)


Категория: Микроконтроллеры
Метки:

Написать коментарий

*
= 4 + 5

Добавить изображение

Последние статьи