Устройство прерывания питания с большой выдержкой

В статье (эта моя статья опубликована в журнале «Радио» №8 2016) приводится описание простого устройства, позволяющего производить подключение/отключение нагрузки с длительной выдержкой между включениями (часы). Устройство выполнено на микроконтроллере Atmel: ATtiny13A и содержит минимальное число элементов.

Иногда приходится сталкиваться с задачей периодического включения электронного устройства с большой длительностью паузы между включениями. Например, измерение температуры или какого-либо иного параметра раз в несколько часов: нужно измерить значение и передать его по радиоканалу. Либо «противоположная задача»: отключить питание работающего оборудования на несколько секунд с последующим включением для полной перезагрузки. Подобная ситуация возникла у меня в деревенском доме: в отсутствие хозяев, регистрирующая система собирала информацию с различных датчиков и через 3G модем отправляла сведения на специализированный сайт с базой данных. Обнаружилось непредсказуемое периодическое «выпадание», а то и полное прекращение регистрации данных в базе. Причиной тому являлась потеря сигнала в сети сотового оператора. «Лечилась» проблема единственным способом – перезагрузкой всех устройств системы (модема, роутера, контроллера). Был выбран простой способ реализации – раз в 4-5 часов выключать питание регистрирующей системы на несколько секунд…

Постановка и способ реализации задачи

По-сути, необходимо разработать обычный мультивибратор с высокой скважностью вырабатываемых импульсов. Напрашивается решение на RC цепочке в цепи затвора полевого транзистора с обратной связью, разряжающей времязадающий конденсатор. В-общем – «огород» из множества радиоэлементов, весьма чувствительный к их параметрам.
Альтернативой «аналогового» решения задачи может стать недорогой «цифровой» способ – на микроконтроллере. Принцип работы может быть таким: «спящий» контроллер периодически «пробуждается» от сигнала сторожевого таймера, за пару микросекунд «бодрствования» проверяет текущее время и, в случае необходимости, включает исполнительное реле на заданный интервал.

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

Принципиальная схема устройства прерывания питания показана на рисунке. Питание +5В от внешнего источника подается на устройство через разъем Х1 (тип USB BF – тот что устанавливается в оборудовании). Через нормально замкнутые контакты К1.1 реле К1 напряжение передается на выходные разъемы Х2, Х3 (сдвоенный разъем USB AF от старой материнской платы). К выходу РВ4 микроконтроллера DD1 подключен транзисторный ключ VT1, в цепи коллектора которого установлено реле К1 (5В, 75 Ом).
Для индикации состояния реле предназначен светодиод VD1 (когда питание отключается от разъемов Х2, Х3 – он светится).
При включении питания, после сброса, линии портов микроконтроллера включаются на ввод, таким образом, транзистор остается закрытым, а реле обесточенным.

Программа

Алгоритм программы устройства реализован в среде разработки Algorithm Builder for AVR  и представлены в архиве.
Программа в виде блок-схемы алгоритма представлена на рисунке:Работает она следующим образом: после подачи питания, watchdog таймер программируется на самый длительный период срабатывания (сброс микроконтроллера) – в нашем случае – около 8 секунд. Далее проверяется содержимое регистра R0. Информация в нем не теряется в «спящем режиме», что позволяет использовать его содержимое для подсчета «числа пробуждений» устройства. В нашем случае – это циклический байтовый счетчик числа срабатываний сторожевого таймера, период его переполнения составляет примерно 35 минут (8,2 сек * 256). Если содержимое регистра отлично от нуля, то микроконтроллер «засыпает» (переключается в режим Power down).
Отсчетами тридцати пяти минутных интервалов занимается счетчик на регистре R1. В моем случае было достаточно восьми интервалов (8,2 сек * 256 * 8 = 4,7 часа), поэтому условие проверки такое как на блок схеме. Далее по алгоритму: по истечении указанного периода, порт РВ4 настраивается на вывод и в него записывается логическая единица. Это приводит к открыванию транзисторного ключа VT1 и включению реле K1, тем самым – разрывается цепь питания устройств, подключенных к разъемам Х2 и Х3.
Через 8,2 секунды снова сработает сторожевой таймер и сбросит настройку РВ4, тем самым выключив реле К1. Питание внешних устройств восстановится…
Таким образом, примерно раз в четыре с половиной часа устройство на восемь секунд обесточивает нагрузку.
Коды программы устройства прерывания питания представлены в таблице

:1000000009C018951895189518951895189518956C
:10001000189518950FE90DBF01B5086101BD09E2FA
:1000200001BDA895039410E0011651F4139417E054
:10003000112210E0111621F4BC9AC49A0000FECFE0
:0E00400005B70063077F05BF88950000FECF5F
:00000001FF

Значения Fuse битов при программировании ATtiny13A представлены на рисунке Монтаж

Для устройства прерывания питания печатная плата специально не разрабатывалась. Монтаж выполнен на обрезке макетной платы размерами 20х50 мм. Плата с деталями обтянута термоусадочной трубкой.
Микроконтроллер ATtiny13A установлен на панельке DIP-8. Для коммутации нагрузки использовано малогабаритное пятивольтовое реле для монтажа на печатную плату (обозначение на корпусе SRS-05VDC-SL). Свечение контрольного светодиода хорошо видно сквозь термоусадочную трубку.
В качестве разъема Х1 используется гнездо USB BF, а в качестве X2, X3 – сдвоенное гнездо USB AF, выпаянное из неисправной материнской платы компьютера (эту процедуру легко проделать с помощью строительного фена).
Настройки цифровые устройства при правильном монтаже, как правило, не требуют.
Проверку устройства следует начать без микроконтроллера. Напряжение 5В должно присутствовать на контакте 8 панельки DD1 и верхнем (по схеме выше) контакте обмотки реле К1. Проверить работу транзисторного ключа и реле можно кратковременным замыканием контактов 8 и 3 панельки DD1 – реле К1 должно срабатывать, а светодиод – светиться. После установки микросхемы микроконтроллера, работу устройства проверяют длительным ожиданием момента включения светодиода и «щелкания» реле…
Интересно отметить «побочный эффект» от одного из этапов разработки устройства. С целью «все-таки увидеть: как реле сработало» несколько упрощенная программа для микроконтроллера (без анализа регистра R1 в блок-схеме алгоритма программы) была загружена в приемную часть радиоуправляемого сетевого удлинителя. Через каждые 35 минут розетки удлинителя включались на 8 секунд. В предновогодние дни к этому удлинителю была подключена елочная иллюминация. Эффект оказался неожиданным: в самое неподходящее время елка вдруг включалась и весело мигая, поднимала настроение окружающим. По миганию елки можно было даже время отсчитывать: «Вот и еще пол-часа прошли!».

Выводы

На первый взгляд, совершенно бесполезное устройство, оказалось … полезным. При анализе регистрируемых на сайте данных стало видно, как перезагрузка системы решала «проблемы зависания» канала сотовой связи – при этом для «устранения неприятности» не приходилось ехать на место для перезапуска. Устройство получилось компактным и довольно удобным. Так же надо отметить низкое потребление тока в режиме ожидания, что позволяет применить подобное решение в системах с автономным питанием.
Принципы, заложенные в алгоритм можно использовать и в иных целях, например, для «имитации присутствия в доме».

Добавить комментарий

Ваш e-mail не будет опубликован.

Нажимая кнопку "Отправить" Вы даёте свое согласие на обработку введенной персональной информации в соответствии с Федеральным Законом №152-ФЗ от 27.07.2006 "О персональных данных".