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

Как работает реле?
Внутри реле есть катушка (электромагнит), подвижный металлический якорь и группа контактов. Когда через катушку идёт ток, магнитное поле притягивает якорь и контакты замыкаются; слышимый «щелчок» — это и есть его движение. Когда ток пропадает, пружина возвращает якорь назад и контакты размыкаются.
Главное: между стороной катушки (цепью управления) и стороной контактов (цепью нагрузки) нет электрической связи. Они связаны только магнитным полем. Поэтому схема на Arduino с её 5 V остаётся изолированной от сети.
Что есть на модуле реле?
Голое реле нельзя подключать прямо к пину Arduino: катушка потребляет больше тока, чем способен дать пин, а при выключении создаёт выброс напряжения, который может сжечь пин. На плате модуля уже стоят детали, которые решают эти проблемы:
- Транзистор-драйвер: коммутирует нужные катушке 70–80 mA по слабому сигналу с пина.
- Защитный (обратный) диод: гасит обратное напряжение, возникающее при выключении катушки, и защищает транзистор и Arduino.
- Оптопара (на некоторых моделях): передаёт управляющий сигнал светом и полностью отделяет Arduino от цепи реле.
- Светодиод состояния: горит, когда реле включено; очень удобно, чтобы проверить, работает ли код.
- Винтовые клеммы: позволяют надёжно подключить провода нагрузки без пайки.
Что значат NO, NC и COM?
Со стороны нагрузки у реле три контакта. От того, какие из них использовать, зависит, будет ли прибор включён или выключен, пока на реле не подано питание:
| Контакт | Значение | Когда соединён с COM? |
|---|---|---|
| COM | Общий; сюда идёт один из проводов нагрузки | Всегда соединён либо с NO, либо с NC |
| NO | Нормально разомкнутый (Normally Open) | Только когда на реле подано питание |
| NC | Нормально замкнутый (Normally Closed) | Когда на реле нет питания |
Характеристики (типичный модуль 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. Реле просто встаёт на место обычного настенного выключателя.
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}Управление реле кнопкой: вкл/выкл
В настоящих проектах реле обычно управляют кнопкой, датчиком или таймером. Код ниже переключает реле при каждом нажатии кнопки, так что сетевую лампу можно включать крошечной тактовой кнопкой. Про подключение кнопки и дребезг контактов читай в статье Как подключить кнопку к Arduino.
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 совсем просто:
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)Правила безопасности при работе с сетевым напряжением
- Соблюдай допустимый ток: никогда не превышай значение, указанное на реле (например, 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 кнопкой (удержание)
Пока ты держишь кнопку, горит настоящая лампа на 220 вольт, а как только отпустишь — гаснет. Слабый сигнал Arduino не может зажечь лампу напрямую, поэтому между ними стоит реле — выключатель с электри

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

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

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

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

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

Дверной звонок и свет с датчиком движения
Когда кто-то подходит к твоей двери, ты узнаёшь об этом ещё до звонка. Как только датчик движения замечает человека, загорается светодиод, а зуммер играет мелодию из трёх нот сверху вниз; когда мелоди
Другие статьи
Приложение BlueGrays
Собери эту схему шаг за шагом в телефоне
Схема подключения, код и список деталей на одном экране. 200+ проектов на Arduino, ESP32 и Pico готовы к сборке.
Наведи камеру телефона
Наведи камеру на код — откроется магазин приложений на телефоне.
или открыть магазин

