Выпуск №28. Таймер на ардуино, управляющий 4-мя реле
|
|
Классный таймер на ардуино, который я собрал, изучая урок по этой ссылке вот уже служит мне не первый год, без перебоев, сейчас пока для подсветки разными цветами и аэрации по времени моего маленького аквариума на работе (собрал второй такой же таймер, для автополива по времени в гидропонной системе и контроля освещения). Далее привожу отрывок из урока и ниже мою реализацию с картинками.
{начало отрывка}
К данному устройству можно подключить до 4 приборов (лампочки, светодиодные ленты, моторы, обогреватели, вентиляторы и т.д.), каждое из которых будет включаться на заданные для него промежутки времени суток и в заданные дни недели.
Каждый из четырёх каналов нашего реле времени может выдавать не только логические уровни (1/0 - вкл/выкл), но и сигналы ШИМ (включать приборы на определённую мощность).
В реле времени имеется 20 таймеров (их количество можно уменьшить или увеличить до 128, указав нужное число в строке 16 скетча). Один таймер включает только одно устройство (канал) на заданный промежуток времени, не влияя на работу остальных устройств (каналов). Каждому устройству (каналу) можно назначить несколько таймеров, следовательно, включать и выключать каждое из устройств можно несколько раз в сутки и на разную мощность. При отключении питания, таймеры реле не сбиваются, так как их настройки хранятся в энергонезависимой памяти Arduino. Текущее время также не сбивается, так как оно берётся из модуля часов реального времени, который снабжен батарейкой.
Реле времени можно использовать для включения освещения по времени в доме, квартире, на даче, на производстве и т.д. Можно использовать для включения по времени вентиляции, котлов, обогревателей, полива газонов, систем очистки дачных бассейнов и т.д. Еще одним преимуществом реле времени является создание эффекта присутствия, например, Вас нет дома, но свет утром и вечером включается, а днём и ночью выключается, утром включается радио или телевизор, а ночью включается ночник. Это может заставить задуматься нежелательных «гостей», что дом обитаем и делать там нечего.
Приборы подключаются к каналам 1-4:
• Маломощные приборы с питанием 5 В постоянного тока до 20 мА можно подключать напрямую к одному из каналов.
• Приборы с питанием до 30 В постоянного тока подключаются через силовой ключ.
• Приборы с питанием от сети 220 В переменного тока подключаются через твердотельное или электромеханическое реле.
Алгоритм работы:
Режим просмотра времени: При включении питания на индикаторе отображается текущее время, дата и день недели. Номера включённых каналов отображаются в правом верхнем углу дисплея.
Меню: Для входа в меню нужно нажать на энкодер. Далее поворачивая экодер вправо или влево можно выбрать разделы «ТАЙМЕРЫ», «ЧАСЫ», «ВЫХОД», для входа в требуемый раздел нужно опять нажать на энкодер.
Меню>часы: В данном разделе меню, поворачивая энкодер вправо или влево, можно выбрать разделы «ВРЕМЯ», «ДАТА», «ВЫХОД», для входа в требуемый раздел нужно нажать на энкодер.
Меню>часы>время: Этот раздел меню предназначен для установки текущего времени. Устанавливаемый в данный момент параметр времени (часы, минуты, секунды) должен мигать. Выбор значения осуществляется поворотом энкодера, а переход к следующему значению, нажатием на энкодер.
Меню>часы>дата: Этот раздел меню предназначен для установки текущей даты и дня недели. Устанавливаемый в данный момент параметр даты (день, месяц, год, день недели) должен мигать. Выбор значения осуществляется поворотом энкодера, а переход к следующему значению, нажатием на энкодер.
Меню>таймеры: В данном разделе меню, поворачивая энкодер вправо или влево, можно выбрать один из установленных таймеров (для их редактирования) или разделы «НОВЫЙ ТАЙМЕР», «СТЕРЕТЬ ВСЕ ТАЙМЕРЫ», «ВЫХОД», для входа в требуемый раздел нужно нажать на энкодер. Установленные таймеры отображаются в виде строки из времени их старта/сброса и номера канала «00:00-00:00-0».
Меню>таймеры>новый таймер: Выбор данного раздела приведёт к созданию нового таймера, на экране отобразится надпись «НОВЫЙ ТАЙМЕР СОЗДАН» после чего Вам будет предложено ввести время старта/сброса и указать номер канала (который будет включаться данным таймером). Данный раздел меню недоступен если установлены все таймеры.
Меню>таймеры>стереть все таймеры: Выбор данного раздела приведёт к удалению всех таймеров, на экране отобразится надпись «ВСЕ ТАЙМЕРЫ УДАЛЕНЫ». Данный раздел меню недоступен если нет ни одного установленного таймера.
Меню>таймеры>00:00-00:00-0: Вместо «00:00-00:00-0» будет строка из времени старта/сброса таймера и номера канала которым он управляет. Данный раздел меню предназначен для редактирования выбранного таймера, поворачивая энкодер вправо или влево, можно выбрать разделы «ВРЕМЯ И КАНАЛ», «ПОВТОРЫ», «УРОВЕНЬ СИГНАЛА», «СТЕРЕТЬ ТАЙМЕР», «ВЫХОД», для входа в требуемый раздел нужно нажать на энкодер.
Меню>таймеры>00:00-00:00-0>время и канал: Этот раздел меню предназначен для установки (редактирования) времени старта/сброса таймера и номера канала которым он управляет. Устанавливаемый в данный момент параметр (час старта, минута старта, час сброса, минута сброса, номер канала) должен мигать. Выбор значения осуществляется поворотом энкодера, а переход к следующему значению, нажатием на энкодер.
Меню>таймеры>00:00-00:00-0>повторы: Этот раздел меню предназначен для установки (редактирования) повторов таймера по дням недели, в которые он должен срабатывать. Под устанавливаемым в данный момент параметром (ПН, ВТ, СР, ЧТ, ПТ, СБ, ВС) должен мигать курсор. Поворот энкодера устанавливает или сбрасывает стрелочку под устанавливаемым параметром, если она установлена значит в этот день недели таймер будет срабатывать, иначе он срабатывать не будет. Переход к следующему дню недели осуществляется нажатием на энкодер.
Меню>таймеры>00:00-00:00-0>уровень сигнала: Этот раздел меню предназначен для установки (редактирования) уровня сигнала на выбранном канале при срабатывании таймера. Выбор уровня сигнала от 5% до 100% осуществляется поворотом энкодера с шагом 5%, а нажатие на энкодер приведёт к выходу из данного раздела.
Меню>таймеры>00:00-00:00-0>стереть таймер: Выбор данного раздела приведёт к удалению выбранного таймера, на экране отобразится надпись «ТАЙМЕР УДАЛЕН».
Примеры:
Создание таймера который по будням, между 18:00 и 20:00, будет включать 4 канал с уровнем сигнала 100%:
• Нажмите на энкодер для входа в меню.
• Поворачивайте энкодер пока не увидите раздел «ТАЙМЕРЫ» и войдите в него нажав на энкодер.
• Поворачивайте энкодер пока не увидите раздел «НОВЫЙ ТАЙМЕР» и войдите в него нажав на энкодер.
• Введите «18:00-20:00 к4». Выбор значений осуществляется поворотом энкодера, а переход к следующему - нажатием.
• Поворачивайте энкодер пока не увидите раздел «ПОВТОРЫ» и войдите в него нажав на энкодер.
• Установите галочки под «ПН, ВТ, СР, ЧТ, ПТ». Установка осуществляется поворотом энкодера, а переход - нажатием.
• Поворачивайте энкодер пока не увидите раздел «УРОВЕНЬ СИГНАЛА» и войдите в него нажав на энкодер.
• Установите значение «100%». Выбор значения осуществляется поворотом энкодера, а установка - нажатием.
• Поворачивайте энкодер пока не увидите раздел «ВЫХОД» и выйдите из редактирования таймера нажав на энкодер.
• Поворачивайте энкодер пока не увидите раздел «ВЫХОД» и выйдите из раздела «ТАЙМЕРЫ» нажав на энкодер.
• Поворачивайте энкодер пока не увидите раздел «ВЫХОД» и выйдите из «МЕНЮ» нажав на энкодер.
Теперь на экране отображается текущее время, дата и день недели, а по будням, с 18:00 до 20:00 в правом верхнем углу экрана будет отображаться цифра 4, при этом на 4 канале будет установлен уровень логической «1» (сигнал ШИМ со 100% заполнением). На остальных каналах будет уровень логического «0».
Создание таймера который между 19:00 и 21:00 каждого дня, будет включать 3 канал с уровнем сигнала 50%:
Повторите все шаги из предыдущего примера, но:
• Вместо «18:00-20:00 к4» введите «19:00-21:00 к3».
• Вместо «ПН, ВТ, СР, ЧТ, ПТ» установите галочки под всеми днями недели «ПН, ВТ, СР, ЧТ, ПТ, СБ, ВС».
• Вместо «100%» установите уровень сигнала «50%».
После того как Вы установите два таймера (из 1 и 2 примера): По будням с 18:00 до 19:00 в правом верхнем углу экрана будет отображаться цифра 4, при этом на 4 канале будет установлен уровень логической 1 (сигнал ШИМ со 100% заполнением). По будням с 19:00 до 20:00 в правом верхнем углу экрана будет отображаться цифра 3 и 4, при этом на 3 канале будет установлен сигнал ШИМ с 50% заполнением, а на 4 канале будет установлен уровень логической «1» (сигнал ШИМ со 100% заполнением). По будням с 20:00 до 21:00 и в выходные с 19:00 до 21:00, в правом верхнем углу экрана будет отображаться цифра 3, при этом на 3 канале будет установлен сигнал ШИМ с 50% заполнением.
Примечание:
Включение и выключение устройств осуществляется по установленным таймерам только в режиме просмотра времени. Это сделано для того, чтобы устройства «случайно» не включились во время редактирования текущей даты, времени или таймера.
{конец отрывка}
Мои доработки
В уроке сборка идет на trema – модулях, которые мне купить в своей стране проблематичнее, чем заказать из Китая, да и так дешевле.
Для сборки таймера я купил на Али:• ЖК-дисплей I2C
• Энкодер
• Часы реального времени DS3231 I2C
• 3 реле
Пару слов о пайке: Контакты двух Модулей I2C (SDA,SCL,GND,VCC) параллельно паяем и далее – SDA к A4 выходу ардуино, SCL к А5 выходу. Энкодер подключаем согласно коду: кнопку на 4 выход ардуино, CLK и DT на 7-8 выходы ардуино. Выходы ардуино 5,6,9,10, согласно коду подключаем к реле.
Подключил, как сказано в уроке 3 библиотеки (см. файлы для скачивания в конце статьи) и прошил ардуино, предложенным в уроке кодом (только чтобы заработал мой ЖК-модуль с Китая, нужно было в параметрах LiquidCrystal_I2C lcd (0x27,16,2); вместо «0x27» изменить на «0x3F») - см. код в конце статьи.
Но не все так просто. Код работает, если сборка на trema- модулях и кнопка энкодера у меня не работала как надо, а ЖК-дисплей отображался лишь в случае нажатия на кнопку энкодера. В общем, в комментариях к этому уроку, кто-то победил эту беду переполюсовкой кнопки, но у меня так не вышло и я просто добавил кнопку вместо резистора 10 Ком и между землей и кнопкой энкодера поставил резистор 10Ком.
Еще несколько моих скринов:
А вот и рыбки в разном освещении:
Добавить комментарий (через VK):