Управляем реле с помощью arduino. Управление реле с помощью Arduino

Рано или поздно каждый задумывается о реализации автоматизированного включения и выключения различных бытовых приборов окружающих нас в повседневной жизни. Такие нагрузки, да ещё и с переменным током (АС) мы ни как не можем подключать напрямую к плате Ардуино. Поэтому для решения такой задачи существует такое устройство, как электромагнитное реле. В данной статье мы будем рассматривать уже готовый с обвязкой модуль, на котором установлено реле, готовое к простому подключению к микроконтроллеру.

Имеет на своей плате всего три пина для подключения. VCC - питание, GND - земля и IN - вывод для приема управляющего сигнала. Если на вашем модуле название выводов называются немного по-другому, думаю, догадаться что и где будет не трудно. Так же мы видим на плате два светодиода. Красный светодиод загорается, когда мы подключаем питание к модулю реле. Зеленый светодиод показывает режим срабатывания реле. Если зеленый светодиод загорелся, значит, реле замкнулось и наоборот, если потух зеленый, значит, реле разомкнулось. С другой стороны модуля мы видим клемы для подключения нагрузки.

Давай возьмем плату Ардуино. В данном случае я возьму плату Arduino Nano . Вы можете брать любую другую. И подключим обычную лампу накаливания, которая питается от сети 220V.

Как мы видим, подключение модуля реле к плате Arduino довольно простое. Вывод VCC модуля реле соединяем с пином 5V платы Arduino, а вывод GND модуля реле соединяем с выводом GND платы Ардуино. Тем самым модуль реле мы обеспечили питанием. Пин управления IN подсоединяем к выводу D2 платы Ардуино. Нагрузка, идущая от сети 220V в виде нашей лампы, подключается к модулю реле в разрыв своей цепи одного из проводов. Просто разрезаем один из проводов и один конец заводим в общий контакт COM , который всегда находится на среднем выводе. А второй конец соединяем с нормально разомкнутым контактом NO , который обычно находится сверху, если смотреть на модуль "правильно", как на картинке сверху (чтобы все цифры и надписи на самом реле были не верх ногами).

Часто клемы могут быть не подписаны, либо подписаны как на рисунке выше в виде китайских иероглифов. Это не должно вас смущать. Просто переверните модуль реле и посмотрите на него с обратной стороны.

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

Управлять модулем реле довольно просто, то же самое, что и зажигать обычный светодиод.

const int rele = 2; // Пин Arduino к которому подключен вывод IN реле void setup () { pinMode(rele, OUTPUT); // устанавливаем цифровой пин 2 в режим выхода } void loop () { digitalWrite(rele, HIGH); //включаем реле delay(3000); //пауза 3 секунды digitalWrite(rele, LOW); //выключаем реле delay(3000); //пауза 3 секунды }

Свет включается и выключается с паузой в 3 секунды. Всё это довольно скучно и хочется подключить какой-нибудь датчик для более интересного взаимодействия с электронным реле.

Свет по хлопку

Давайте сделаем так, чтобы наша лампа включалась и выключалась по хлопкам в ладоши. Для этого мы добавим в нашу схему датчик звука KY-037 .


Цифровой вывод D0 датчика звука KY-037 соединяем с цифровым выводом D5 платы Ардуино. Вывод + датчика звука соединяем с выводом 5V платы Arduino Nano. Вывод G датчика звука подводим к выводу GND (земле) платы Ардуино. То есть питаем датчик звука с тех же выводов Ардуино, с которых питаем и модуль реле. В идеале конечно различные датчики и устройства надо питать отдельно от мозгов, но ардуинка вполне без сбоев тянет реле с датчиком звука. Поэтому обойдемся минимумом проводов в ходе этой статьи.

Работу с данным датчиком звука мы уже рассматривали подробно в статье Подключение и настройка датчика звука KY-037 . Так что для большего понимания всего происходящего прочитайте обязательно эту статью. Там рассматриваются примеры кода для срабатывания датчика на включение и выключение света по одному хлопку. А так же рассматривается пример кода на включение света по двум хлопкам и выключению по одному хлопку. Здесь я выложу специально код на включение света по двум хлопкам и выключению света тоже по двум хлопкам, от части, для тех, кто не смог или не захотел немного изменить имеющийся код из предыдущей статьи.

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

const int sensorD0 = 5; // Пин Arduino к которому подключен выход D0 датчика const int rele = 2; // Пин Arduino к которому подключено реле int releState = LOW; // Статус реле "выключен" long soundTime=0; // время первого хлопка void setup () { pinMode(rele, OUTPUT); // устанавливаем цифровой пин 2 в режим выхода } void loop () { int sensorValue = digitalRead(sensorD0); // получаем сигнал с датчика if (sensorValue == 1 && releState == LOW) //если порог громкости достигнут и реле было ВЫКЛЮЧЕНО { long diodTime=millis(); // записываем текущее время //если текущее время хлопка больше времени последнего хлопка на 100 миллисекунд //и хлопок произошел не позже чем через 1000 миллисекунд после предыдущего //считаем такой хлопок вторым УСПЕШНЫМ if((millis()>soundTime) && ((diodTime-soundTime)>100) && ((diodTime-soundTime)<1000)) { digitalWrite(rele, HIGH); // включаем реле releState = HIGH; // устанавливаем статус реле "включен" delay(100); // небольшая задержка для фильтрации помех } soundTime=millis(); //записываем время последнего хлопка } else // иначе { if (sensorValue == 1 && releState == HIGH) // если порог громкости достигнут и реле было ВКЛЮЧЕНО { long diodTime=millis(); // записываем текущее время if((millis()>soundTime) && ((diodTime-soundTime)>100) && ((diodTime-soundTime)<1000)) { digitalWrite(rele, LOW); // выключаем реле releState = LOW; // устанавливаем статус реле "выключен" delay(100); // небольшая задержка для фильтрации помех } soundTime=millis(); //записываем время последнего хлопка } } }

Всё! Хлопаем в ладоши два раза, свет включается. Хлопаем еще два раза и свет выключается. Не забываем подстроить чувствительность датчика звука. Всё про настройку есть в статье Подключение и настройка датчика звука KY-037 .

Обратите внимание, что манипулируя со строчкой if((millis()>soundTime) && ((diodTime-soundTime)>100) && ((diodTime-soundTime)<1000)) , а именно цифрами 100 и 1000 , можно добиваться срабатывание датчика на разную скорость хлопков. Например, данный пример позволяет срабатывать датчику звука на быстрые хлопки с паузой между каждым в 100 миллисекунд. Вторая цифра 1000, говорит о том, что второй хлопок не должен прийти позже, чем через 1000 миллисекунд (1 секунду). Если мы изменим, например цифру 100 на 500, то датчик будет реагировать на хлопки только с достаточной паузой между каждым. И такое решение для света по хлопку может лучше подходить в местах, где часто хлопают дверью или есть другие побочные резкие звуки, которые могут заставлять случайно срабатывать датчик звука.

Подключение модуля реле к Ардуино потребуется, если вы решите управлять с помощью микроконтроллера мощной нагрузкой или переменным током. Модуль реле SRD-05VDC-SL-C позволяет управлять электрическими цепями с переменным током до 250 Вольт и нагрузкой до 10 Ампер. Рассмотрим схему подключения реле, как управлять модулем для включения светодиодной ленты и лампы накаливания.

Реле SRD-05VDC-SL-C описание и схема

Реле – это электромеханическое устройство, которое служит для замыкания и размыкания электрической цепи с помощью электромагнита. Принцип работы силового реле srd-05vdc очень прост. При подаче управляющего напряжения на электромагнитную катушку, в ней возникает электромагнитное поле, которое притягивает металлическую лапку и контакты мощной нагрузки замыкаются.

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

Согласно характеристикам реле SRD-05VDC-SL-C, для переключения контактов достаточно около 5 Вольт 20 мА, выводы на Ардуино способны выдавать до 40 мА. Таким образом с помощью Ардуино мы можем управлять не только лампой накаливания, но и любым бытовым прибором — обогревателем, холодильником и т.д. Полевые транзисторы на Ардуино могут управлять токами только до 100 Вольт.

Схема подключения реле к Arduino UNO

Для занятия нам понадобятся следующие детали:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • блок питания 12 Вольт;
  • светодиодная лента;
  • провода «папа-папа» и «папа-мама».

Соберите схему, как показано на картинке выше. Подобная схема использовалась в проекте Светильник с управлением от пульта , где светодиодная лента включалась при помощи реле. Модуль имеет три контакта для управления от микроконтроллера Ардуино и два контакта для подключения мощной электрической цепи. Схема подключения реле к Ардуино УНО, Нано или Ардуино Мега ничем не отличается:

GND — GND
VCC — 5V
In — любой цифровой порт

После сборки электрической схемы, загрузите следующий скетч в микроконтроллер. Данная программа ничем не отличается от скетча для мигания светодиода на Ардуино, мы только поменяли в скетче порт и задали большее время задержки.

Скетч для управления реле от Ардуино

void setup () { pinMode (3, OUTPUT ); // объявляем пин 3 как выход } void loop () { digitalWrite (3, HIGH ); // замыкаем реле delay (3000); // ждем 3 секунды digitalWrite (3, LOW ); // размыкаем реле delay (1000); // ждем 1 секунду }

После загрузки скетча включите блок питания в цепь. Реле при этом должно устанавливаться в разрыве одного из проводов, идущего к LED ленте. Для безопасности лучше устанавливать реле в провод заземления. К минусам реле следует отнести щелчки при замыкании/размыкании контакта, поэтому для включения LED ленты и других приборов до 40 Вольт удобнее использовать транзисторы.

Видео. Управление LED лентой через реле

Реле может использоваться для создания автоматического светильника, где используется лампа накаливания 200 Вольт, а контроллер включает лампу, когда уровень освещенности в помещении станет меньше заданной величины. Также можно сделать автоматическое управление электрообогревателем в комнате.

Также часто читают:

Цифровые пины на Arduino могут принимать значения high или low. Именно это свойство используется для управления большинством внешних двигателей, датчиков и т.п.

Но иногда возникают ограничения, связанные с тем, что устройсва требуют большие токи, чем может предоставить Arduino. Судя по спеку, платы Arduino предоставляют нам в распоряжение всего лишь 20 мА.

Если вы слишком часто будете работать с токами, которые превышают эти рекомендации, у вас не толь будет ненадежная электрическая цепь, но можно повредить и ваш контроллер Arduino.

Вместо этого вам надо подключать необходимую силу тока. Один из вариантов - использовать реле. Кроме этого, порой вам понадобятся и транзисторы, например, TIP122, который рассмотрен в этой статье.

Необходимые узлы

Основное преимущество данного подхода: его дешевизна.

Транзистор TIP122 можно найти в любом магазине радиотехнических деталей или заказать на Aliexpress, eBay.

Автоматические реле можно купить там же.

Описание транзистора TIP122 и его распиновка

TIP122 - это биполярный транзистор. То есть для базы надо обеспечить большее позитивное напряжение, чем на эмиттере, что позволит току поступать от эмиттера к коллектору. Расположение базы, эмиттера и коллектора TIP122 показаны на рисунке ниже.

Главное, что надо помнить об этом транзисторе - то, что он позволяет протекать току в 5 А от эмиттера через коллектор и 120 мА от эмиттера через базу.

Также очень круто то, что вы можете получить разницу в 100 В между коллектором и эмиттером и 100 вольт между коллектором и базой.

Не чересчур ли это? Для большинства проектов на Arduino - действительно чересчур. Но при этом они дешевые и когда появляется новая идея, не приходится заморачиваться и подбирать нужный транзистор, так как этот наверняка подойдет. Когда проект или конструкция апробирована, можно оптимизировать уже после тестового образца.

Автоматическое реле Bosch Cube. Распиновка и описание

Эти реле могут обеспечивать различные напряжения и силу тока. То реле, о котором пойдет речь дальше обеспечивает напряжение 12 В и силу тока 20/30 А. То есть, при замкнутых контактах сила тока составляет 20А, при разомкнутых - 30 А.

Кроме того, на моем реле сопротивление катушки примерно равно 95 Ом.

Сила тока, которая нужна для катушки гораздо больше чем та, которую может предоставить Arduino, но ее становится вполне достаточно после использования транзистора TIP122, который выдает 5 А.


Схема и описание подключения Arduino, TIP122 и реле

На электросхеме, которая приведена ниже, выход high D0 подключен к базе TIP122 и благодаря этому ток может проходить к пину 86 на реле. Благодаря этому подается питание на реле и в нем замыкаются контакты 30 и 87. После этого вы можете запитывать любое ваше внешнее устройство.


Пояснения к использованию и программа для Arduino, TIP122 и автоматического реле

В этом примере мы соберем небольшую схему, в которой Arduino используется для управления автоматическим реле. После загрузки скетча на микроконтроллер, реле включится на две секунды и отключится на две секунды. Это будет продолжаться, пока вы не отключите питание от вашей платы Arduino.

Схема подключения соответствует той, которую мы рассмотрели выше. Ниже представлен ее более наглядный вариант.


Скопируйте, вставьте скетч в Arduino IDE и загрузите его на Arduino.

Перед загрузкой программы отключите внешний источник питания.

// Тест: TIP122 и Arduino

int nRelayDrive = 0; // пин 0 у нас для управления реле

pinMode(nRelayDrive, OUTPUT); // объявляем реле в качестве выхода

digitalWrite(nRelayDrive, LOW); // включаем реле

digitalWrite(nRelayDrive, HIGH); // отключаем реле

Проверка

Отключите ваш USB кабель от персонального компьютера и подключите внешний источник питания к Arduino и реле. Дайте вашему миикроконтроллеру время для перезагрузки. Если все было сделано правильно, вы должны услышать характерный клик реле, которое будет замыкать и размыкать контакт через каждые две секунды.

P.S. В данном проекте в качестве источника питания использовался аккумулятор от машины на 12 Вольт, но можно использовать и другой.

Оставляйте Ваши комментарии, вопросы и делитесь личным опытом ниже. В дискуссии часто рождаются новые идеи и проекты!

В этом опыте, мы будем управлять реле, точнее сказать не мы, а ардуино, и для этого попробуем воспользоваться полученными знаниями из предыдущих 12 уроков. Реле это электрически управляемый, механический переключатель. Внутри этого простенького на первый взгляд, пластмассового корпуса, находится мощный электромагнит, и когда он получает заряд энергии, происходит срабатывание, в результате чего якорь притягивается к электро магниту, контактная группа замыкает или размыкает цепь питания нагрузки. В этой схеме вы узнаете, как управлять реле, придав Arduino еще больше способностей!

На тот случай, если у вас в наборе идет не просто реле, а именно модуль, т.е уже собранная схема на печатной плате, Вам не нужно собирать схему (см. ниже), а нужно правильно подключить модуль к плате Arduino.

Реле и Электронный модуль Реле для Arduino на 5V.

VCC — питание +5 Вольт

GND — общий (земля) — минус.

IN1 — управление

NO — нормально разомкнутый (Normally Open)

NC — нормально замкнутый (Normally Closed)

COM — обший (Common)

К контактам NC и NO подключаются светодиоды, общий COM подключается к + питания (+5V), GND к земле (-), VCC к +5 Вольт, IN1 (управление, обозначение может быть другим) к порту ардуино Pin 2.

Когда реле выключено, общий контакт «COM» (common) будет подключен к нормально замкнутому контакту «NC» (Normally Closed). Когда же реле сработает «общий» контакт COM соединится с «нормально разомкнутым» контактом «NO» (Normally Open).

Выше, вы видите саму принципиальную схему к уроку 13, думаю сложностей возникнуть не должно, при правильном соединении, т.е соблюдая указания маркировки и «полюсность», все должно получиться.

Для этого опыта вам понадобится:

1. Arduino UNO — 1 шт.

2. Реле или «Электронный модуль Реле» — 1 шт.

3. Транзистор 2N222A — 1 шт.

4. Диод 1N4148 — 1 шт.

5. Резистор 330 Ом.

6. Светодиоды различных цветов — 2 шт.

7. Соединительные провода.

Cхема электрических соединений макетной платы и Arduino. Уроку 13. Arduino и Реле

Скачать код к опыту 13. Скетч и подробное описание (Обязательно прочтите весь скетч!):

Набор для экспериментов ArduinoKit
Код программы для опыта №13:

Вид созданного урока на макетной схеме:

Arduino и Реле. Урок 13

В результате проделанного опыта Вы должны увидеть…

Вы должны услышать щелчки переключающегося реле, а также увидеть два светодиода по переменно загорающимися с секундным интервалом. Если этого нет, — проверьте правильно ли вы собрали схему, и загружен ли код в Arduino.

Возможные трудности:

Светодиоды не светятся
Дважды проверьте правильность установки светодиодов, — длинный вывод является плюсовым контактом..

Не слышны щелчки реле
Проверьте правильность подключение реле и транзистора.

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

Всем удачи! Ждём ваши комментарии к ARDUINO УРОК 13 — ARDUINO УПРАВЛЯЕТ РЕЛЕ.

С помощью Ардуино. Но как быть, если мы задумаем управлять устройствами, подключенными к бытовой сети? Напомню, что даже небольшая настольная лампа питается от источника переменного тока с напряжением 220 Вольт. Обычный полевой транзистор, который мы использовали в схеме с двигателем уже не подойдет.

Чтобы управлять мощной нагрузкой да еще и с переменным током воспользуемся реле. Это такое электромеханическое устройство, которое механическим способом замыкает цепь нагрузки с помощью электромагнита. Посмотрим на внутренности:

Принцип действия реле следующий. Подаем напряжение на электромагнитную катушку. В катушке возникает поле, которое притягивает металлическую лапку. В свою очередь, лапка механически замыкает контакты нагрузки.

У реле есть два основных применения. Во-первых, мы можем подав всего 5 Вольт на катушку, замкнуть цепь очень мощной нагрузки. Например, реле, используемое в уроках для Ардуино, может включить холодильник или стиральную машину. Во-вторых, некоторые виды реле могут одновременно замкнуть и разомкнуть сразу несколько разных цепей с разным напряжением.

На этом уроке мы будем работать не с отдельным реле, а с целым релейным модулем. Помимо самого реле, модуль содержит еще и оптоэлектронную развязку с транзистором, которые защищают выводы Ардуино от скачков напряжения на катушке.

У одинарного модуля реле есть всего три контакта. Подключим их по следующей схеме.

Кстати, вход реле является инвертированным. Это означает, что высокий уровень на контакте In выключит катушку реле, а низкий уровень — включит.

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

Внешний вид макета

2. Программа для Ардуино

Напишем простую программу, которая будет включать лампу на 3 секунды, а затем гасить на 1 секунду.

Const int relPin = 3; void setup() { pinMode(relPin, OUTPUT); } void loop() { digitalWrite(relPin, HIGH); delay(1000); digitalWrite(relPin, LOW); delay(3000); }

Загружаем программу на Ардуино. Теперь подключаем питание к лампе и к реле. Наконец, подаем питание на контроллер.

3. Автоматический светильник или уличный фонарь

С помощью контроллера, реле и датчика света можно сделать несложный автоматический светильник. Контроллер будет зажигать лампу в момент, когда уровень света на датчике станет меньше заданного значения.

В качестве датчика используем готовый модуль на основе . Подключим все три устройства по следующей схеме.

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

Внешний вид макета

4. Программа автоматического светильника

Аналоговый вывод датчика дает значения в диапазоне от 0 до 1023. Причем, 0 — для максимального уровня света и 1023 для полной темноты.

Сначала нам нужно определиться при каком уровне света включать лампу, а при каком выключать. В нашей лаборатории при свете дня датчик показывает значение L = 120, а ночью около L = 700. Будем включать реле при L > 600, и выключать при L < 200. Вспомним как и напишем программу.

Const int photoPin = A5; const int relPin = 3; void setup() { pinMode(photoPin, INPUT); pinMode(relPin, OUTPUT); } void loop() { if(analogRead(photoPin) < 200) digitalWrite(relPin, HIGH); if(analogRead(photoPin) > 600) digitalWrite(relPin, LOW); }

Загружаем программу на Ардуино и проводим эксперимент. Лучше всего это делать ночью.

Задания

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

2. Управление двигателем. Имея два трехконтактных реле, таких же как в этом уроке, можно собрать схему для изменения направления вращения двигателя.

  • Сергей Савенков

    какой то “куцый” обзор… как будто спешили куда то