Реклама ⓘ
Главная » Автоматика в быту
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Реклама ⓘ

Недельный таймер, двухканальное реле времени

Представляю вашему вниманию двухканальное недельное реле времени.

Устройство имеет два независимых таймера, с возможностью настройки их времени включения-выключения в каждом дне недели. Примененная микросхема часов реального времени обеспечивает достаточно высокую точность хода, наличие батарейки сохраняет ход часов при отключении от сети.  Реле собрано на микроконтроллере  ATmega8, отсчет времени обеспечивают часы реального времени на микросхеме ds1307, информация отображается жидкокристаллическим индикатором. Одно такое  реле у меня успешно управляет светом в птичнике, другое включает подсветку и компрессор в аквариуме. Данное устройство любительское и не претендует на замену промышленных реле времени. Автор не несет никакой ответственности за возможные убытки и вред, полученный из-за применения данного устройства. Вся ответственность лежит на конечном пользователе. Схема и печатная плата являются прототипом и могут быть доработаны.  Схема, файлы печатной платы, файл прошивки и исходный код приложены в архиве к статье.

Схема и детали

Внимание! Устройство включается в сеть 220 Вольт! будьте внимательны и осторожны. Большинство деталей широко распространены, и могут быть заменены на аналогичные. Сетевое напряжение понижается трансформатором Т1 и выпрямляется диодным мостом VD1 .Плата рассчитана на мост в корпусе типа RB-15 . Выпрямленное напряжение используется для питания реле и стабилизатора напряжения 5 вольт. Конденсатор С1 сглаживает пульсации выпрямленного напряжения. Напряжение вторичной обмотки в моем варианте 12 вольт, т.к. были в наличии реле с обмоткой на 12в. Стабилизатор 5 вольт построен на распространенной микросхеме 7805, схема включения – типовая. Конденсаторы С2 и С3 сглаживают пульсации напряжения и замыкают на землю высокочастотную помеху, если она появится. Часы реального времени на микросхеме ds1307 включены по типовой схеме из даташита, обмен данными с микроконтроллером происходит по шине I2C. Сохранение хода часов при отключенном питании обеспечивает батарея. Часовой кварц взят из старой материнской платы компьютера, оттуда же и корпус - держатель батарейки.  Батарейка литиевая тип CR2032 –«компьютерная» 3х вольтовая. Индикатор применен широко распространенный LCD 1602, подключен он  по стандартной схеме четырехбитного режима.Программа не выводит символов кириллицы, поэтому подойдет индикатор и без расширенной кодовой таблицы. Резистором R8 настраивается контраст, резистор R9 служит для снижения яркости подсветки, при необходимости. Резистор R9 мощностью 0.5-1 ватт, остальные 0.125 ватт.  Кнопки - обычные тактовые, удобнее если они с длинным толкателем. Транзисторы практически любые n-p-n, я ставил КТ3102. Все диоды 1n4007. Конденсаторы С4 ,С5 устанавливаются как можно ближе к выводам микросхем. Реле К1,К2 - RT214012, так же подойдут  любые  другие, предназначенные для коммутации сетевого напряжения. Обращаю внимание – существует несколько типов похожих реле, с разными исполнениями силовых выводов.

Ток потребления устройства небольшой,  во вторичной обмотке порядка 50-100 миллиампер, стабилизатор L7805 в корпусе ТО-220 можно использовать без радиатора.

Печатная плата

Печатная плата односторонняя, выполнена в программе Dip Trace, под выводные компоненты. Единственное исключение – микросхема ds1307 в корпусе для поверхностного монтажа. Замечу, микросхема ds1307 показала себя требовательной к топологии печатной платы, и не всегда уверенно работала на макете. Обязательным условием нормальной работы является заключение выводов 1,2 микросхемы и выводов кварцевого резонатора в земляное кольцо. А так же минимальные длины дорожек этих цепей.  Для прошивки микроконтроллера в плате распаиваются штырьки у соответствующих ножек.

ЖКИ распаивается через проводной шлейф, и может быть расположен так как показано на фотографии в заголовке к статье.

Первоначально плату я делал под ЖКИ с боковым двухрядным исполнением выводов, примерно таким -

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

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

Программа микроконтроллера написана в среде CodeVision. Программирование  осуществляется до впаивания в плату программатором, либо после, путем подключения к выводам программирования. Фьюзы устанавливаются на тактирование от внутреннего генератора 8МГц, включается сторожевой таймер, и устанавливается порог монитора питания 4 вольта. Байты конфигурации   LOW-0х04 , HIGH-0х99.

 Для Uniprof настройки такие:

Меню и настройка

Устройство управляется четырьмя кнопками – UP,DOWN,ENTER,BACK. Кнопки UP,DOWN пролистывают окно или значение вверх/вниз, кнопка ENTER осуществляет вход в подменю либо в режим изменения параметра, кнопка BACK выход из режима изменения параметра либо возврат на предыдущий уровень меню. Меню сделано интуитивно понятно и просто. Значения таймеров сохраняются в энергонезависимой памяти микроконтроллера, часы реального времени на микросхеме ds1307 сохраняют свое значение от резервной батареи. Сохранение происходит сразу по изменению значения.

При включении на  экране отображается текущее время, день недели, и состояние выходных реле K1  и К2. Это основной экран мню. Выглядит так -

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

Нажимая на кнопки UP,DOWN можно перейти в подменю настройки недельных таймеров ,либо в подменю настройки времени и календаря –

 

Нажав на кнопку ENTER ,попадем в соответствующее подменю.

Настройку времени и календаря необходимо выполнить один раз при первом включении устройства. Экран настройки выглядит следующим образом –

Первая строка  слева направо– часы, минуты, секунды, вторая строка слева направо  – число, месяц , год, день недели. Числа разделяются двоеточием, активная позиция выбора мигает. Нажимая кнопки UP, DOWN можно изменить значение выбранного параметра. Переход к следующему параметру – кнопка ENTER. Выход из подменю настройки – кнопка BACK. Секунды устанавливаются либо в 00 либо в 30. День недели вычисляется программно.

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

Нажимая на кнопки UP, DOWN пролистываются дни недели с понедельника по воскресенье в английском сокращении - Mon, Tue, Wed, Thu, Fri, Sut, San. Выбрав нужный день, нажимаем кнопку ENTER, попадаем в подменю настройки таймеров выбранного дня.

Верхняя строка  слева направо – время включения реле К1 часы и минуты , затем время включения реле К2 часы и минуты. Секунды не учитываются.

Нижняя строка – слева направо время выключения реле К1 часы и минуты , затем время выключения реле К2 часы и минуты. Если вместо времени отображаются звездочки , значит данный таймер неактивен в этот день недели. На приведенном экране реле К1 включится в  10 часов 58 минут, и отключится в 19 часов ровно. Реле К2 неактивно – все сутки выключено. Нажимая кнопки UP,DOWN можно изменить значение выбранного параметра. Переход к следующему параметру – кнопка ENTER. Выход из подменю настройки – кнопка BACK. Активная позиция выбора мигает. Для задания неактивного состояния таймера нужно пролистать настройку часов до ** (между 23 и 0).

 Время включения может быть задано как раньше времени выключения, так и наоборот позже времени выключения. Например –

Реле К1 включится в 5:50 и отключится в 10:00. Реле К2 включится в начале суток в 00:00 , в 8:50 выключится, и будет отключено до 20:00. В 20:00 реле К2 включится и будет включено до 23:59, дальнейшее состояние будет зависеть от настроек следующих суток.

Если в следующие сутки состояние реле задано как неактивное, т.е значения заданы как **, то состояние реле не измениться, включенное останется включенным, выключенное выключенным. При переходе часов с 23:59 предыдущих суток на 00:00 последующих, реле не сбрасываются , переключения состояния происходят только согласно заданного в настройках времени. То есть можно задать время включения в понедельник, а время выключения в пятницу, реле будет включено. Но! если произойдет отключение электроэнергии,  алгоритм работы будет возобновлен с момента состояния на текущие сутки. Настройки реле независимы друг от друга, так же настройки предыдущих суток не влияют на настройки последующих суток.

При введении значений с кнопок проверяется соответствие чисел диапазону часов и дат. Не получиться задать 25 часов, или 60минут , так же невозможно задать 31 день в месяце где дней 30 и.т.п. Високосные года учитываются.

Настройки активируются только при нахождении в основном меню.

При первом включении микроконтроллер очищает область занятой под настройки EEPROM, инициализирует ds1307, и записывает время и дату  по умолчанию – 00:00 01:01:2020. Так же в ячейки номер  10,20,30 EEPROM пишется «205» - признак того , что было первое включение и не требуется очищать память и инициализировать часы реального времени по новой. Зная это можно записать в EEPROM значения таймеров на этапе программирования. Ниже приведена таблица адресов и того, что в них лежит.

N- Число соответствующее дню недели, все числа даны в десятичном формате

День

недели

  Пн  

  Вт  

  Ср  

  Чт  

  Пт  

  Сб  

  Вс  

 N

 110

 120

 130

 140

 150

 160

 170

 

Адрес

N+1

N+2

N+3

N+4

N+5

N+6

N+7

N+8

Значение

K1 -вкл

часы

K1- вкл

мин

K2 -вкл

часы

K2-вкл

мин

K1-выкл

часы

K1 -выкл

мин

K2 -выкл

часы

K2-выкл

мин

Например, в понедельник, включение К1- значения  часов записывается  в ячейке номер 111, значение минут в ячейке номер 112.

Или, например, выключение  К2 в субботу часы записаны  в ячейке номер 167 , минуты в ячейке номер 168.

В ячейки часов пишется значение в диапазоне 0-24, 24- признак неактивного значения, и отображаться будет как «**». В ячейки минут пишутся значения от 0-59.

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

Опционально есть возможность принудительно проинициализировать ds1307 , для этого нужно при включении устройства в сеть нажать кнопки ENTER и BACK.

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

Теги:

Опубликована: 0 0
Я собрал 0 2
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 4.3 Проголосовало: 2 чел.

Комментарии (12) | Я собрал (0) | Подписаться

0
Публикатор #
На форуме автоматически создана тема для обсуждения статьи.
Ответить
0
_abk_ #
Хорошо написанная статья, приятно читать.
Ответить
0
Сергей #
Этот таймер настроил раз и все, или на каждую неделю настраивать нужно? Точнее сказать настроил включение/отключение каждый день чего либо, и все не трогаешь месяц два оно работает. Или только 1 неделя и все?
Ответить
0

[Автор]
e_c_c #
Настроил и не трогаешь. Каждую новую неделю цикл повторяется. Месяц два , три , год, пять лет ....
Ответить
0
AMatroskin #
Настройку времени и календаря необходимо выполнить один раз при первом включении устройства.
Боюсь с ds1307 это придется делать достаточно часто. Не самая точная микросхема.
Ответить
0

[Автор]
e_c_c #
А нужна ли большая точность? Ну уйдет на несколько минут за полгода, и пусть , беды не будет.
ИМХО, добиваться идеально точного хода это ненужный перфекционизм.
Ответить
+1
andro #
Как раз то, что нужно, хорошая связка, ещё бы добавить интерфейс для связи с компьютером или другим микроконтроллером.
Ответить
0

[Автор]
e_c_c #
Может быть, руки дойдут , сделаю.
Ответить
0
SiNuS #
Радует, что весь проект в одном файле, делай не хочу. Зачётно!
Ответить
0

[Автор]
e_c_c #
А как может быть по другому ?
Ответить
0
Edd1957 #
Светодиод горит постоянно. Написал в тему.
Ответить
0

[Автор]
e_c_c #
Ответил в теме
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется напряжение?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Радиореле 220В
Радиореле 220В
Осциллограф DSO138 ELM327 OBD II — адаптер с поддержкой CAN
вверх