Подключение двухканального релейного модуля к Arduino

Подключение двухканального релейного модуля к Arduino

У вас есть проект на Arduino, в котором нужно управлять чем-то, работающим от сетевого напряжения? Лампой? Мотором? Вот в чём загвоздка — ваш Arduino работает всего на 5 вольтах, тогда как большинство бытовых приборов работают на гораздо более высоком напряжении. Так как же безопасно преодолеть этот разрыв?

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

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

Как работают реле?

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

Основы работы реле

Вот небольшая анимация, показывающая, как реле связывает две цепи.

Подключение двухканального релейного модуля к Arduino

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

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

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

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

Работа реле

Типичное реле имеет пять выводов, выступающих снизу.

Подключение двухканального релейного модуля к Arduino

Три из этих выводов используются для подключения устройства, которым вы хотите управлять. Эти три вывода называются NC (нормально замкнутый), NO (нормально разомкнутый) и COM (общий).

Оставшиеся два вывода (coil1 и coil2) подключаются к электромагнитной катушке внутри реле. Подача напряжения на эти выводы активирует катушку.

Устройство, которым вы управляете — например, лампа или двигатель — подключается между выводом COM и выводом NC или NO. Если вы хотите, чтобы устройство было включено по умолчанию, подключите его между COM и NC. Или, если вы хотите, чтобы оно было выключено до активации реле, подключите его между COM и NO.

Подключение двухканального релейного модуля к Arduino

Когда реле неактивно (ток через катушку не протекает), вывод COM соединён с выводом NC. Это означает, что электричество может протекать по этому пути, питая любое устройство, подключённое к NC.

Однако, когда электрический ток протекает через катушку, он создаёт магнитное поле. Это магнитное поле притягивает якорь, заставляя его перемещаться. Это перемещение разрывает соединение между COM и NC и вместо этого создаёт новое соединение между COM и NO. Это меняет путь электричества, питая любое устройство, подключённое к NO.

Как только ток перестаёт протекать через катушку, магнитное поле исчезает, и якорь возвращается в исходное положение. Вывод COM снова соединяется с выводом NC, а вывод NO размыкается, возвращая реле в нормальное состояние.

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

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

Подключение двухканального релейного модуля к Arduino

Обзор оборудования двухканального релейного модуля

Двухканальный релейный модуль содержит два независимых реле, позволяющих управлять двумя мощными электрическими устройствами, такими как лампы или двигатели. Каждое реле на модуле может коммутировать ток до 10 ампер при напряжении 250 вольт переменного тока или 30 вольт постоянного тока.

Подключение двухканального релейного модуля к Arduino

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

Выходные клеммные колодки

С одной стороны модуля расположены винтовые клеммы для каждого реле. Эти клеммы обозначены NC (нормально замкнутый), NO (нормально разомкнутый) и COM (общий). Подключайте устройство к этим клеммам в зависимости от того, как вы хотите, чтобы оно работало — включённым по умолчанию или выключенным до активации.

Подключение двухканального релейного модуля к Arduino

Управление модулем

На другой стороне модуля расположены два входных вывода, IN1 и IN2, которые используются для управления каждым реле. Важно помнить, что входы работают по активному низкому уровню. Это означает, что реле включается, когда на вход подаётся LOW (0 вольт), и выключается, когда подаётся HIGH (5 вольт).

Подключение двухканального релейного модуля к Arduino

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

Встроенные оптопары

Одна из замечательных особенностей этого модуля — наличие оптопар.

Подключение двухканального релейного модуля к Arduino

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

Перемычка выбора источника питания

Модуль включает небольшую перемычку между двумя выводами, обозначенными JD-VCC и VCC. Эта перемычка управляет тем, как реле получает питание.

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

  • С удалённой перемычкой: Arduino и реле полностью изолированы, что безопаснее, но вам потребуется подключить отдельный источник питания 5В к выводам JD-VCC и GND для питания реле.

Подключение двухканального релейного модуля к Arduino

Предупреждение:

Помните, что если вы удалите перемычку, оставьте вывод VCC отключённым, иначе вы можете повредить схему.

Питание модуля

Модуль работает от 5 вольт, и когда оба реле включены, он потребляет около 140мА тока (примерно 70мА на каждое реле).

Подключение двухканального релейного модуля к Arduino

Модуль включает защитные диоды, подключённые параллельно катушкам реле. Когда катушка реле обесточивается, она может создать внезапный скачок напряжения, называемый обратной ЭДС (электродвижущей силой), который может повредить управляющую электронику. Защитные диоды обеспечивают путь для этого тока, добавляя дополнительный уровень защиты для вашего Arduino.

Распиновка двухканального релейного модуля

Давайте рассмотрим распиновку.

Подключение двухканального релейного модуля к Arduino

Выводы управления:

VCC — вывод питания. Подключите его к пину 5V на Arduino.

GND — общий вывод заземления.

IN1 и IN2 — управляющие входы реле. IN1 управляет первым реле, а IN2 — вторым. Важно знать, что эти входы работают по активному низкому уровню. Это означает, что при установке вывода в LOW (0В) реле включается. При установке в HIGH (5В) реле выключается.

Выводы выбора источника питания:

JD-VCC — этот вывод подаёт питание конкретно на катушки реле (электромагниты, которые физически переключают контакты). Обычно между VCC и JD-VCC предустановлена перемычка.

  • С установленной перемычкой JD-VCC соединяется с VCC. Это упрощает подключение, поскольку всё питается от вывода 5В Arduino. Недостаток в том, что Arduino и катушки реле используют один источник питания, поэтому они не изолированы электрически.

  • При удалении перемычки вы отделяете питание катушек реле от питания 5В Arduino. Это важно, когда вы хотите защитить Arduino от потенциальной обратной ЭДС катушек. Если вы удалите перемычку, необходимо подключить отдельный источник питания 5В к JD-VCC и GND для питания катушек.

VCC соединяется с JD-VCC, когда перемычка установлена. Если вы удалите перемычку, оставьте этот вывод VCC отключённым. Он используется только для конфигурации общего питания.

GND — общий вывод заземления.

Выходные клеммы:

COM — общая клемма. Подключите одну сторону управляемого устройства к этому выводу.

NC (нормально замкнутый) — соединён с COM, когда реле деактивировано. Используйте это подключение, если хотите, чтобы устройство было ВКЛЮЧЕНО по умолчанию и ВЫКЛЮЧАЛОСЬ при активации реле. Соединение между NC и COM разрывается при включении реле.

NO (нормально разомкнутый) — отсоединён от COM, когда реле деактивировано. Используйте это подключение, если хотите, чтобы устройство было ВЫКЛЮЧЕНО по умолчанию и ВКЛЮЧАЛОСЬ только при активации реле. Соединение между COM и NO создаётся при включении реле.

Подключение двухканального релейного модуля к Arduino

Теперь, когда мы понимаем, как работает релейный модуль, пора применить его на практике! Давайте подключим его к Arduino и используем для управления лампой.

Базовые подключения

Сначала подключим релейный модуль к Arduino:

  • Подключите вывод VCC релейного модуля к пину 5V на Arduino

  • Подключите вывод GND к выводу GND Arduino

  • Поскольку в этом примере мы используем только одно реле, подключите цифровой пин 6 Arduino к выводу IN1 на релейном модуле.

Подключение лампы

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

Выполните следующие шаги:

  1. Аккуратно разрежьте фазный провод силового кабеля лампы

  2. Возьмите конец провода, идущий от розетки, и подключите его к клемме COM (общий) на реле

  3. Подключите другой конец разрезанного провода (идущий к лампе) к одной из этих клемм: клемма NO (нормально разомкнутый): лампа будет ВЫКЛЮЧЕНА по умолчанию и ВКЛЮЧИТСЯ при активации реле

  4. Клемма NC (нормально замкнутый): лампа будет ВКЛЮЧЕНА по умолчанию и ВЫКЛЮЧИТСЯ при активации реле

Для этого проекта мы хотим, чтобы лампа была выключена, пока мы её не включим, поэтому подключим один провод к COM, а другой — к NO.

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

Подключение двухканального релейного модуля к Arduino

Более безопасная альтернативная схема

Для лучшей безопасности и защиты Arduino вы можете обеспечить электрическую изоляцию между Arduino и реле. Для этого удалите перемычку, соединяющую JD-VCC и VCC на релейном модуле. Затем подключите отдельный источник питания 5В к выводам JD-VCC и GND на релейном модуле. Выводы VCC и GND Arduino остаются подключёнными, как и раньше, для питания управляющей схемы, а подключения на стороне переменного тока остаются без изменений.

Подключение двухканального релейного модуля к Arduino

Пример кода для Arduino

Теперь, когда релейный модуль подключён, перейдём к управлению им с помощью Arduino. Эта часть на самом деле довольно проста — управление реле очень похоже на включение и выключение светодиода. Мы напишем короткую программу, которая включает реле на 3 секунды, затем выключает на 3 секунды и повторяет этот цикл снова и снова.

int RelayPin = 6;

void setup() {
  // Set RelayPin as an output pin
  pinMode(RelayPin, OUTPUT);
}

void loop() {
  // Let's turn on the relay...
  digitalWrite(RelayPin, LOW);
  delay(3000);

  // Let's turn off the relay...
  digitalWrite(RelayPin, HIGH);
  delay(3000);
}

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

Объяснение кода:

В нашем коде первое, что мы делаем, — сообщаем Arduino, к какому пину подключено реле. В данном случае мы используем пин 6. Поэтому создаём переменную RelayPin и устанавливаем её равной 6.

int RelayPin = 6;

В функции setup() мы указываем Arduino обрабатывать RelayPin как выход, поскольку мы отправляем сигналы от Arduino к реле.

pinMode(RelayPin, OUTPUT);

В функции loop() мы сначала включаем реле, устанавливая пин в LOW, поскольку релейные модули работают по «активному низкому уровню» (включаются, когда пин установлен в LOW). После включения мы ждём 3 секунды, чтобы удержать реле активным. Затем мы выключаем реле, устанавливая пин в HIGH, и ждём ещё 3 секунды. Этот цикл повторяется бесконечно, включая и выключая реле каждые несколько секунд.

digitalWrite(RelayPin, LOW);
delay(3000);

digitalWrite(RelayPin, HIGH);
delay(3000);