Компоненты · 5 мин чтения

Модуль реле для Arduino: подключение, код и безопасность

Что такое модуль реле для Arduino? Это выключатель, которым плата управляет лампами, насосами и вентиляторами. Разбираем NO, NC и COM, подключение active LOW, JD-VCC и скетч с кнопкой.

Реле — это выключатель с электрическим управлением: небольшой электрический сигнал включает и выключает гораздо более мощную нагрузку. Пин Arduino выдаёт всего 5 V и несколько десятков миллиампер; этого хватит для светодиода, но не для лампы, вентилятора, водяного насоса или прибора, работающего от сети 230 V. Модуль реле решает эту задачу: Arduino подаёт слабый сигнал, реле замыкает свои внутренние контакты, и через нагрузку идёт большой ток. Это основная деталь проектов умного дома, автополива и таймеров.

Одноканальный модуль реле 5V
Одноканальный модуль реле 5 V: синий корпус — само реле, а клеммы с винтами рядом служат для подключения нагрузки.

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

Внутри реле есть катушка (электромагнит), подвижный металлический якорь и группа контактов. Когда через катушку идёт ток, магнитное поле притягивает якорь и контакты замыкаются; слышимый «щелчок» — это и есть его движение. Когда ток пропадает, пружина возвращает якорь назад и контакты размыкаются.

Главное: между стороной катушки (цепью управления) и стороной контактов (цепью нагрузки) нет электрической связи. Они связаны только магнитным полем. Поэтому схема на Arduino с её 5 V остаётся изолированной от сети.

Что есть на модуле реле?

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

  • Транзистор-драйвер: коммутирует нужные катушке 70–80 mA по слабому сигналу с пина.
  • Защитный (обратный) диод: гасит обратное напряжение, возникающее при выключении катушки, и защищает транзистор и Arduino.
  • Оптопара (на некоторых моделях): передаёт управляющий сигнал светом и полностью отделяет Arduino от цепи реле.
  • Светодиод состояния: горит, когда реле включено; очень удобно, чтобы проверить, работает ли код.
  • Винтовые клеммы: позволяют надёжно подключить провода нагрузки без пайки.

Что значат NO, NC и COM?

Со стороны нагрузки у реле три контакта. От того, какие из них использовать, зависит, будет ли прибор включён или выключен, пока на реле не подано питание:

КонтактЗначениеКогда соединён с COM?
COMОбщий; сюда идёт один из проводов нагрузкиВсегда соединён либо с NO, либо с NC
NOНормально разомкнутый (Normally Open)Только когда на реле подано питание
NCНормально замкнутый (Normally Closed)Когда на реле нет питания
В большинстве проектов используют COM и NO: если Arduino выключена, перезагружается или зависла, прибор тоже остаётся выключенным. NC выбирают для прибора, который должен работать постоянно и лишь иногда отключаться.

Характеристики (типичный модуль 5 V)

ПараметрЗначение
Напряжение катушки5 V DC
Ток катушкиОколо 70–80 mA (на канал)
Нагрузка на контакты10 A 250 V AC / 10 A 30 V DC (указано на корпусе реле)
СрабатываниеActive LOW или active HIGH (зависит от модуля)
Пины управленияVCC, GND, IN (IN1, IN2... на многоканальных платах)
Клеммы нагрузкиCOM, NO, NC

Подключение модуля реле к Arduino

Со стороны управления нужно три провода: VCC модуля — к 5V, GND — к GND, а IN — к цифровому пину 7. Со стороны нагрузки разрежь один из проводов прибора, которым хочешь управлять, и подключи оба конца к клеммам COM и NO. Реле просто встаёт на место обычного настенного выключателя.

C++ (Arduino IDE)
1const int RELAY_PIN = 7;
2
3void setup() {
4  pinMode(RELAY_PIN, OUTPUT);
5  digitalWrite(RELAY_PIN, HIGH);  // aktif LOW modülde kapalı başla / start OFF on active-LOW modules
6}
7
8void loop() {
9  digitalWrite(RELAY_PIN, LOW);   // röle çeker, cihaz açılır / relay on
10  delay(3000);
11  digitalWrite(RELAY_PIN, HIGH);  // röle bırakır, cihaz kapanır / relay off
12  delay(3000);
13}
Многие модули реле работают по схеме active LOW: реле включается, когда на пине IN уровень LOW, и выключается при HIGH. Какой у тебя тип, видно по светодиоду состояния. На плате active HIGH поменяй местами HIGH и LOW в коде выше. Если первым делом выключить реле в setup(), прибор не включится на мгновение, пока Arduino загружается.

Управление реле кнопкой: вкл/выкл

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

C++ (Arduino IDE)
1const int RELAY_PIN = 7;
2const int BUTTON_PIN = 2;      // butonun diğer ucu GND'de / other leg to GND
3
4bool relayOn = false;
5bool lastButton = HIGH;
6
7void setup() {
8  pinMode(RELAY_PIN, OUTPUT);
9  pinMode(BUTTON_PIN, INPUT_PULLUP);
10  digitalWrite(RELAY_PIN, HIGH); // başta kapalı / start OFF (active LOW)
11}
12
13void loop() {
14  bool button = digitalRead(BUTTON_PIN);
15  if (lastButton == HIGH && button == LOW) {   // yeni basış / new press
16    relayOn = !relayOn;
17    digitalWrite(RELAY_PIN, relayOn ? LOW : HIGH);
18    delay(50);                                  // sıçrama önleme / debounce
19  }
20  lastButton = button;
21}

JD-VCC и оптопара: полная изоляция

На модулях с оптопарой рядом с пинами VCC, GND и IN есть пин JD-VCC с перемычкой. Когда перемычка стоит, катушка реле тоже питается от 5 V Arduino. Если снять перемычку и подключить к JD-VCC и его GND отдельный адаптер на 5 V, ток катушки будет полностью идти от адаптера, а сторона Arduino будет только зажигать светодиод оптопары. С шумными нагрузками вроде моторов и насосов это сильно снижает зависания и перезагрузки Arduino.

Реле с ESP32 и Raspberry Pi Pico

Пины ESP32 и Pico выдают 3,3 V. Большинство модулей реле на 5 V срабатывают от такого сигнала, но на модуле active LOW уровень HIGH в 3,3 V не всегда полностью отпускает реле; если реле всё время включено, причина именно в этом. Решения: купить модуль с управлением от 3,3 V, взять плату с оптопарой и раздельным JD-VCC или добавить небольшой NPN-транзистор. Сам модуль при этом всё равно питается от 5 V. Управлять реле с Pico на MicroPython совсем просто:

MicroPython
1from machine import Pin
2import time
3
4relay = Pin(15, Pin.OUT, value=1)   # GP15, aktif LOW: 1 = kapalı / active LOW: 1 = off
5
6while True:
7    relay.value(0)    # röle çeker / relay on
8    time.sleep(3)
9    relay.value(1)    # röle bırakır / relay off
10    time.sleep(3)

Правила безопасности при работе с сетевым напряжением

Сетевое напряжение может убить. Всегда собирай схему, когда вилка вынута из розетки, никогда не оставляй открытые оголённые концы проводов, помещай схему в закрытый изолированный корпус, а если сомневаешься, тренируйся на светодиодной ленте или вентиляторе на 12 V вместо сети. Детям нельзя работать с сетевой частью без взрослых.
  • Соблюдай допустимый ток: никогда не превышай значение, указанное на реле (например, 10A 250VAC). С мощными приборами вроде обогревателей, кондиционеров и чайников держись намного ниже этого предела.
  • Разрывай фазу: при управлении лампой или розеткой пропускай через реле фазный провод, а не ноль, чтобы на выключенном приборе не оставалось напряжения.
  • Бери подходящий кабель: перемычки для макетной платы не рассчитаны на сеть; со стороны нагрузки используй изолированный кабель подходящего сечения.
  • Изолируй нижнюю сторону платы: на стороне пайки модуля есть сетевое напряжение; не допускай её касания с металлическими поверхностями или голыми руками.
  • Поставь предохранитель: предохранитель подходящего номинала в цепи нагрузки предотвратит пожар при коротком замыкании.

Реле, транзистор или твердотельное реле?

ПараметрМеханическое релеТранзистор / MOSFETТвердотельное реле (SSR)
КоммутируетAC и DCТолько DCВ основном AC
СкоростьМедленно (миллисекунды)Очень быстро, умеет PWMБыстро
ШумЩёлкаетБесшумноБесшумно
РесурсКонтакты со временем изнашиваютсяОчень большойОчень большой
Лучше всего дляЛамп, розеток, насосовСкорости моторов, светодиодных лентЧасто переключаемых AC-нагрузок

Коротко: если прибор нужно время от времени включать и выключать, механическое реле — самое дешёвое и простое решение. Чтобы регулировать скорость мотора или яркость светодиодной ленты, выбирай транзистор или MOSFET, а для AC-нагрузок, которые переключаются много раз в секунду, — твердотельное реле. Подобрать подходящий транзистор поможет утилита Транзисторы.

Идеи проектов с реле

  • Умный полив: включай водяной насос, когда датчик влажности почвы показывает, что земля сухая.
  • Свет по движению: включай лампу, когда PIR-датчик замечает человека, и выключай через некоторое время.
  • Вентилятор по влажности: запускай вытяжку в ванной, когда растёт влажность; про измерение читай в статье Датчик температуры и влажности DHT11.
  • Розетка с пультом: переключай розетку ИК-приёмником и пультом от телевизора.
  • Таймер: включай и выключай подсветку аквариума каждый день в одно и то же время.
  • Управление с телефона: управляй лампой с веб-страницы через Wi-Fi на ESP32.

Частые ошибки и как их исправить

  • Реле работает наоборот: модуль active LOW; поменяй местами HIGH и LOW в коде.
  • Реле постоянно щёлкает: возможно, слабое питание; используй внешний адаптер на 5 V, особенно если реле несколько.
  • Arduino перезагружается при запуске мотора: помехи и просадка напряжения; питай катушку отдельно через JD-VCC и поставь конденсатор параллельно мотору.
  • Светодиод горит, а нагрузка не работает: провода нагрузки, возможно, подключены к NC или ослаб винт клеммы.
  • С ESP32 реле никогда не отпускает: HIGH в 3,3 V не может выключить модуль active LOW; возьми модуль, совместимый с 3,3 V, или транзистор.
  • Голое реле прямо на пине: ток катушки и обратное напряжение убивают пин; всегда используй модуль или транзистор с диодом.

Когда реле работает в паре с датчиком, начинаются по-настоящему полезные автоматизации. Чтобы понять, какой датчик для чего, загляни в Руководство по датчикам Arduino; в приложении BlueGrays есть пошаговые проекты с реле — лампы, полив и освещение — со схемами подключения.

Частые вопросы

Почему мой модуль реле постоянно щёлкает?

Самая частая причина — слабое питание: при срабатывании реле напряжение проседает, Arduino перезагружается и реле отпускает. Если реле несколько или Arduino питается от USB, используй внешний адаптер на 5 V. Ещё проверь, нет ли в коде цикла, который всё время переключает реле.

Что значит реле active LOW?

Это модуль реле, который включается, когда на пине IN уровень LOW (0 V), и выключается при HIGH. Так работает большинство дешёвых модулей. В коде пишешь digitalWrite(pin, LOW), чтобы включить, и HIGH, чтобы выключить; хорошая привычка — сразу поставить HIGH в setup(), чтобы реле стартовало выключенным.

Можно ли управлять реле двигателем постоянного тока?

Включать и выключать мотор — да, но регулировать скорость или легко менять направление не получится. Для управления скоростью используй MOSFET или PWM-драйвер мотора, а для направления — H-мост вроде L298N.

Зачем нужна перемычка JD-VCC?

На модулях с оптопарой она разделяет питание катушки реле (JD-VCC) и питание управления (VCC). Если снять перемычку и подать на JD-VCC отдельные 5 V, Arduino полностью изолируется от цепи реле, и помехи от нагрузок вроде моторов до неё не доходят.

Какое реле брать: на 5 V или на 12 V?

Напряжение катушки должно совпадать с напряжением, от которого питается модуль. Для проектов на Arduino удобнее всего модуль с катушкой на 5 V: хватает 5 V от Arduino или USB-адаптера. Реле с катушкой на 12 V требует питания 12 V; к напряжению на стороне нагрузки это отношения не имеет.

Сколькими реле может управлять одна Arduino?

Каждому реле нужен один цифровой пин, а у Uno до 20 доступных пинов. Настоящее ограничение — ток: каждая катушка потребляет около 70–80 mA, поэтому для больше чем 2 реле питай модуль от внешнего адаптера на 5 V, а не от Arduino. Для большего числа каналов есть модули на 8 и 16 каналов.

Все проекты
Включение лампы 220V кнопкой (удержание)
#19Продвинутый
Premium

Включение лампы 220V кнопкой (удержание)

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

4.4(30)
38
Включение лампы 220V кнопкой (вкл/выкл)
#20Продвинутый
Premium

Включение лампы 220V кнопкой (вкл/выкл)

Хочешь включать и выключать настоящую бытовую лампу крошечной кнопкой? При каждом нажатии кнопки Arduino переключает реле, и лампа загорается; нажмёшь снова — гаснет. Реле — посредник, который позволя

4.5(33)
44
Включение лампы 220V пультом
#21Продвинутый
Premium

Включение лампы 220V пультом

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

4.4(22)
30
Умная станция полива
#83Продвинутый
Premium

Умная станция полива

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

5.0(42)
57
Умное освещение на ESP32 (PIR + LDR + реле + OLED)
#141Продвинутый
Premium

Умное освещение на ESP32 (PIR + LDR + реле + OLED)

Сделай умное освещение для коридора, ванной или кладовки на ESP32! С PIR-датчиком движения, датчиком освещённости LDR и модулем реле собирается классический сценарий «свет включается при движении в темноте»: если вокруг уже светло, движение свет НЕ включает, и днём энергия экономится. Свет горит 30 секунд; если движение продолжается, таймер сбрасывается, и свет горит дольше. OLED SSD1306 крупно показывает состояние (ON / DAYTIME / WAITING) и обратный отсчёт.

4.3(6)
11
Автоматическое освещение с PIR-датчиком движения на ESP32
#121Средний
Premium

Автоматическое освещение с PIR-датчиком движения на ESP32

В этом проекте PIR-датчик движения HC-SR501 замечает, что кто-то вошёл в комнату, и автоматически включает светодиод. Время свечения отслеживается через millis(); каждое показание HIGH обновляет время последнего движения, и светодиод гаснет не раньше чем через 10 секунд после последнего HIGH. Текущий код ещё и ждёт 50 ms на каждом цикле через delay(50), поэтому цикл не полностью неблокирующий. Подходит для освещения лестниц, шкафов и ванной.

4.4(24)
38
Дверной звонок и свет с датчиком движения
#25Средний
Premium

Дверной звонок и свет с датчиком движения

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

4.7(54)
71