Простой таймер на Ардуино с реле и обратным отсчётом
Сегодня покажу как легко и просто сделать таймер для управления реле к которому можно подключить любую нагрузку.
Нам понадобятся. Ардуино, LCD индикатор, реле, пищалка для подачи сигнала и 4 кнопки.
Чтобы не тянуть, сразу покажу как это работает, а потом посмотрим схему подключения.
Слева на экране я буду управлять кнопками всеми настройками, а справа я вывел более крупное изображение дисплея, что бы лучше видеть все изменения.
При нажатии на 1 кнопку можно выбрать установку времени. Это секунды, минуты и часы.
После выбора режима, кнопками плюс и минус можно настроить время таймера. Отсчёт времени будет идти в обратную сторону. И при достижении нуля, раздастся сигнал и включится или выключится реле. Это будет завесить от того какой режим у вас запрограммирован.
После установки нужного времени надо нажать четвёртую кнопку и таймер начнёт работу. Для примера я поставил время срабатывания 14 секунд, и режим работы Отключение. После нажатия ОК, реле включит нагрузку, которая отключится через 14 секунд.
Установленное время сохраняется в памяти Ардуино, и если вы захотите снова использовать это же время, вам надо просто нажать ОК.
Теперь изменим режим и будем включать лампу при срабатывании таймера. Как менять режимы я покажу дальше в видео.
Для работы вам надо установить библиотеки.
Библиотеку таймера и библиотеку для работы с LCD дисплеем. Так как я в скетче использую русский шрифт, то вам надо установить вот эту библиотеку. Если вам что-то будет непонятно, то посмотрите вот это видео, там я подробно всё рассказал.
Здесь указано к каким пинам подключены кнопки. А здесь куда подключены пищалка и реле.
Эти две переменные отвечают за выбор режима работы. Сейчас установлен режим Выключение. То есть при срабатывании таймера, реле будет отключено.
Если вы поменяете эти значения на противоположные. Сделаете OFF равным единице, а ON равным нулю, то измените режим на включение и при срабатывании таймера он включит нагрузку.
Подведу итог работы, но не видео.
В таймере можно устанавливать время. Часы, минуты и секунды. Режим работы может быть как на включение или отключение нагрузки.
Давайте посмотрим схему. Индикатор подключается по стандартной схеме к шине I2C.
Пищалка подключается в пину d6, а реле к пину d5. И то и другое питается от 5 вольт Ардуино. Если у вас будет тускнеть дисплей, то вам надо подключить реле к выводу WIN Ардуино, если вы питаете плату от USB или запитать от отдельного источника.
Кнопки подключены к выводам А0 – А3. Другой вывод кнопки надо подключить к земле. Так как в скетче я включил внутреннюю подтяжку, то вам не обязательно устанавливать внешние резисторы.
Если вам нравятся мои видео, то вы можете помочь в развитии канала став его спонсором. Все ваши вклады пойдут на закупки новых модулей. Вам же за это будут предоставлены дополнительные бонусы, и они довольно интересные.
Вы видите ссылки на видео, которые, я думаю будут вам интересны. Перейдя на любое из этих видео вы узнаете что-то новое, а ещё поможете мне. Ведь любой ваш просмотр — это знак YOUTUBE, что это кому-то интересно и что его надо показывать чаще.
Спасибо.
Урок 39. Реле времени: управление устройствами по таймеру
В этом уроке мы создадим четырёхканальное реле времени. К данному устройству можно подключить до 4 приборов (лампочки, светодиодные ленты, моторы, обогреватели, вентиляторы и т.д.), каждое из которых будет включаться на заданные для него промежутки времени суток и в заданные дни недели.
Каждый из четырёх каналов нашего реле времени может выдавать не только логические уровни (1/0 — вкл/выкл), но и сигналы ШИМ (включать приборы на определённую мощность).
В реле времени имеется 20 таймеров (их количество можно уменьшить или увеличить до 128, указав нужное число в строке 16 скетча). Один таймер включает только одно устройство (канал) на заданный промежуток времени, не влияя на работу остальных устройств (каналов). Каждому устройству (каналу) можно назначить несколько таймеров, следовательно, включать и выключать каждое из устройств можно несколько раз в сутки и на разную мощность. При отключении питания, таймеры реле не сбиваются, так как их настройки хранятся в энергонезависимой памяти Arduino. Текущее время также не сбивается, так как оно берётся из модуля часов реального времени, который снабжен батарейкой.
Реле времени можно использовать для включения освещения по времени в доме, квартире, на даче, на производстве и т.д. Можно использовать для включения по времени вентиляции, котлов, обогревателей, полива газонов, систем очистки дачных бассейнов и т.д. Еще одним преимуществом реле времени является создание эффекта присутствия, например, Вас нет дома, но свет утром и вечером включается, а днём и ночью выключается, утром включается радио или телевизор, а ночью включается ночник. Это может заставить задуматься нежелательных «гостей», что дом обитаем и делать там нечего.
Нам понадобится:
- Arduino Uno х 1шт.
- Дисплей LCD1602 I2C зелёный или синий x 1шт.
- Trema I2C HUB прямоугольный или квадратный x 1шт.
- Trema модуль — RTC (часы реального времени) x 1шт.
- Trema модуль — энкодер x 1шт.
- Trema Shield x 1шт.
Для реализации проекта нам необходимо установить библиотеки:
- LiquidCrystal_I2C для работы с символьными ЖК дисплеями.
- iarduino_Encoder_tmr для работы с энкодерами через аппаратный таймер.
- iarduino_RTC для работы с модулями реального времени.
- Библиотеки EEPROM, Wire и pgmspace используемые в скетче, входят в стандартный набор Arduino IDE.
О том как устанавливать библиотеки, Вы можете ознакомиться на странице Wiki — Установка библиотек в Arduino IDE .
Видео:
Схема подключения:
Trema модуль RTC и дисплей LCD1602 I2C подключаются к аппаратной шине I2C через Trema I2C HUB, а Trema энкодер можно подключать к любым (цифровым или аналоговым) выводам Arduino, их номера указываются в скетче (в примере использованы выводы D4, D7 и D8). Для удобства подключения используется Trema Shield.
Приборы подключаются к каналам 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% заполнением.
Примечание:
Включение и выключение устройств осуществляется по установленным таймерам только в режиме просмотра времени. Это сделано для того, чтобы устройства «случайно» не включились во время редактирования текущей даты, времени или таймера.
Код программы:
Библиотека iarduino_Encoder_tmr использует второй аппаратный таймер, НЕ ВЫВОДИТЕ СИГНАЛЫ ШИМ НА 3 ИЛИ 11 ВЫВОД!
Микросхема простого электронного таймера времени на Ардуино своими руками
Всем привет! Собрав таймер на Ардуино из этой инструкции, вы сможете контролировать включение и выключение ваших устройств в нужное вам время. Это могут быть ночные фонари, система орошения сада и т.д. Мы воспользуемся Ардуино, дисплеем и RTC 1307, отображающим и управляющим временем. Вы можете задать часы «ВКЛ» и «ВЫКЛ» при помощи 4 кнопок, что позволит вам изменять настройки микросхемы таймера.
Также вы научитесь создавать часы, базирующиеся на Ардуино. Я приложил схему из fritzing и видео, так что вы без проблем соберёте данное устройство.
Сначала посмотрите видео, чтобы понять, о чем идет речь, используйте его как руководство.
Шаг 1: Материалы
- Arduino Uno
- Модуль RTC 1307
- Дисплей 16X2
- Модуль реле 5V
- Подстроечный потенциометр 10K
- Резистор 1K
- Резисторы 10K x 4 штуки
- Кнопки x 4 штуки
- Макетная плата, джамперы.
Шаг 2: Устанавливаем часы
Следуйте схеме из Fritzing.
Соедините 5V и GND с Ардуино с соответствующими контактами (Красный – 5V, синий – земля)
Дисплей к Ардуино:
- VSS к GND
- VDD к 5V
- VO к центру потенциометра
- RS к пину 2
- RW к GND
- EN или E к пину 3
- D0 NC
- D1 NC
- D2 NC
- D3 NC
- D4 к пину 4
- D5 к пину 5
- D6 к пину 6
- D7 к пину 7
- A к 5V
- K к GND через резистор 1K
- Остальные контакты потенциометра на 5V и GND
- SDA к пину 4
- SCL у пину 5
- GND и 5V
Шаг 3: Устанавливаем время
Пришло время настроить часы. Запустите код «Set time RTC». Этот скетч возьмёт данные о дате и времени из вашего компьютера прямо во время компиляции кода и использует их для программирования RTC. Если у вас на компьютере неправильные установки, то поправьте их перед запуском программы. Затем нажмите кнопку Upload, чтобы немедленно загрузить откомпилированный код.
Внимание: Если вы скомпилируете код, а загрузите его позже, то данные о времени устареют.
Далее откройте окно Serial Monitor, чтобы увидеть, что время было установлено.
Шаг 4: Часы
После того, как установите время, откройте и загрузите скетч «Clock with RTC LCD». Потенциометр в схеме нужен для настройки контрастности дисплея, покрутите его, чтобы чётко видеть символы.
Шаг 5: Устанавливаем таймер
Теперь мы добавим кнопки и реле. Опять же, следуйте схеме Fritzing.
Пины 8,9, 10 и 11 соединены с GND через резисторы 10K. Когда вы нажмете на кнопку, то на контакты пойдёт напряжение 5V.
Реле соединяется с пином 12. С помощью него можно управлять вашими устройствами, но будьте осторожны с максимальной нагрузкой на реле!
Шаг 6: Таймер
Откройте и загрузите код «Timer with on off set point». Нажимайте кнопки, чтобы сместить время назад или вперёд. Если электронный таймер будет в пределах настроенного интервала, то он начнет работать сразу же. Если же он не попадает в нужный интервал, то будет ждать час «ВКЛ».
Этот код имеет интересные функции, которые можно использовать в других проектах. Я постарался отделить каждую функцию, чтобы всё было максимально понятным.
Весь код написан мной, кроме настройки времени на RTC и дата-логгера Adafruit. Надеюсь, эта инструкция как собрать простой таймер своими руками была для вас полезна!
Рассказываю как сделать какую-либо вещь с пошаговыми фото и видео инструкциями.