Поводом написать программу для этого устройства послужило пожелание посетителей нашего сайта Радиодед. В статье "Кухонный таймер на микроконтроллере ATtiny13", наши уважаемые посетители интересовались схемой таймера для включения бытовых приборов раз в сутки или на какое-то время с заданным интервалом.
"Да и полив цветов, на время когда в отпуске. раз в сутки нужно включать насос 20 Вт на 5-60 сек."
rostt, 17:40 10 августа 2010 г.

Для этих целей был разработан универсальный таймер, его принципиальная схема:
Принципиальная схема таймера для полива растений
Если раз в сутки включается на интервал от 5 до 60 сек, то получается  замкнутый цикл по кругу? Включился на  5 сек, допустим, насос, потом пауза 24 часа, потом снова 5 сек, потом снова 24 часа. Получается нечто наподобие мультивибратора с большой скважностью, поэтому назовём это устройство "Таймер-мультивибратор"для полива  растений.
Время паузы 24 часа (сутки) сделаем неизменным (как было высказано пожелание) хотя можем и его менять в меньшую или большую сторону, но поскольку это не требуется, значит оставим сутки. А интервал работы насоса будем программировать по своему усмотрению от 5 сек до 20 минут максимум (если набрать 255 раз). Хотя обычно на практике, как написано, требуется интервал 5-60 сек.
Порядок работы такой:
Включаем устройство, набираем нужный интервал  N-ное количество 5 секундных выдержек. Допустим надо набрать 60 сек, значит надо нажать кнопку «SET» и удерживать её в нажатом состоянии и ждать, считая 12 раз ( 5 сек  х   12 = 60 сек). Ровно столько раз таймер «пиликнет» баззером и одновременно мигнёт светодиодом HL2. После этого отпускаем кнопку, тут же таймер подтвердит набранное вами количество 5- ти минутных интервалов, как бы для проверки. Если ошиблись в наборе, можно перейти в исходное состояние, нажав кнопку «RESET».
Если всё набрано верно, следом  за озвучкой  начинает мигать  светодиод  HL1, это означает,  что теперь  настал момент,когда можно  занесли в энергонезависимую память микроконтроллера  EEPROM набранный нами интервал времени работы  поливочного  насоса.  Для этого  следует  замкнуть перемычку  Jmp1 и оставить её в замкнутом положении.Светодиод HL1 продолжает мигать, далее  для запуска  нажимаем кнопку «SET» удерживаем её нажатой около секунды, отпускаем её и ВСЁ! Таймер ещё раз озвучит набранное количество  5 секундных интервалов, светодиод HL1 перейдёт  в режим индикации непрерывного цикла, будет  мигать 1 раз за секунду короткими импульсами (0.2 сек) со скважностью  5.

Начался непрерывный замкнутый цикл, сразу же включается реле К1 на время набранного нами интервала, после этого замыкаем перемычку джампера Jmp 2 и оставляем её в замкнутом положении. На этом процедура программирования  устройства с выбранным  нами, временным интервалом работы поливочного насоса закончена.
Если спустя время вы забыли какой интервал у вас запрограммирован в памяти микросхемы, достаточно нажать кнопку  «RESET», после отпускания, таймер уведомит звуковой индикацией, сколько раз набрано 5-ти  секундных интервалов. При этом сразу включится насос, этой операцией можно включать его вручную на выбранный интервал времени, не дожидаясь  окончания суток, как бы вмешаться в ручном режиме в автоматически заданный цикл временных интервалов работы устройства. Информация будет озвучиваться каждый раз при включении устройства, в момент старта с исходного положения.
Теперь даже если кратковременно пропадёт питание в сети, на протяжении суток и появится снова, то устройство сохранит  свои настройки и включится снова при появлении напряжения  и продолжит  работу  по замкнутому циклу.
Если требуется изменить настройки, надо снять перемычки Jmp 1, Jmp 2  и повторить процедуру описанную выше.
Есть ещё один способ, без процедуры установки  интервалов  вручную   кнопкой, можно сразу же установить требуемые  интервалы  времени при программировании микроконтроллера занеся требуемые величины в энергонезависимую память.

Сделать это можно так:
Занести  в память EEPROM  по адресу 00 число в  шестнадцатиричном  виде  (это множитель на сколько надо умножить 5 сек, чтобы получить желаемый интервал времени работы насоса). Допустим нам требуется интервал 30 секунд,(5х6=30). Значит надо занести число 6, в шестнадцатиричном виде это  число равно 0x06, а в ячейку  EEPROM  по адресу 01 внести (множитель) для  формирования  времени паузы, на сколько надо умножить 1 час. У нас сутки равны числу 24 в десятичной форме, следовательно переведя в 16-тиричную форму, будет соответствовать числу 18. После того, как запрограммировали чип, устанавливаете перемычки JP1 и JP2. Теперь устройство запрограммировано и готово к работе.

Программирование микроконтроллера:
Тактовая частота выбрана 128/8  =16 кГц, как выставить фьюзы при программировании, показано на картинке. Так же прилагается вариант печатной платы, ( в формате Sprint Layot 5) любезно предоставленной участником форума, Юрием и рабочая  прошивка  (poliv.hex) для заливки в микроконтроллер.
Установка fuse-битов микроконтроллера

Так же прилагается модель в Протеусе,  где имитируется работа устройства. Прошивка для Proteus отдельная, называется "TIMER_PROTEUS.hex" отличается от рабочей лишь временем паузы которое равно там около 5 сек (чтобы не дожидаться пока пройдут сутки), остальное выставляется как в реальном устройстве.
Модель таймера в Протеусе
Можно «поиграться»  сперва  с виртуальной моделью, чтобы понять работу устройства. Все вопросы и обсуждения по работе устройства пишите на форуме.

Владимир Науменко, г.Калининград
Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.
 

 

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


Защитный код
Обновить