⚠️ Сначала про безопасность
Реле коммутирует сетевое напряжение 220 В — это реально опасно. Правила без исключений:
- работайте только на обесточенной схеме и проверяйте отсутствие напряжения индикатором;
- сетевые провода прячьте в корпус, изолируйте все соединения;
- отделяйте низковольтную часть (Arduino) от высоковольтной физически;
- начинайте с низкого напряжения (5/12 В нагрузки) — схема та же, риска нет;
- если сомневаетесь — используйте готовые «умные розетки» или SSR с заземлённым корпусом.
Что такое релейный модуль
Модуль реле — плата с электромеханическим реле и обвязкой: транзистор для усиления сигнала, диод для ЭДС катушки, опторазвязка (на многих). Вы подаёте логический уровень — реле замыкает или размыкает мощные контакты: до 10 А при 250 В AC на популярных SRD-05VDC.
На модуле обычно:
- IN — вход управления от Arduino;
- VCC, GND — питание катушки (5 В);
- NO, COM, NC — контакты: NO (нормально разомкнут), NC (нормально замкнут), COM (общий).
Подключение
Arduino 5V ── VCC модуля
Arduino GND ── GND модуля
Arduino D7 ── IN модуля
К стороне 220В:
Фаза ── COM
NO ── нагрузка ── Ноль
Важно: коммутируем фазу, не ноль. NC используют, когда «обычно включено, выключаем по событию»; NO — когда «обычно выключено».
Активный LOW или HIGH — главная путаница
Большинство дешёвых модулей — активный LOW: реле включается при LOW на IN и выключается при HIGH. Это сбивает с толку:
digitalWrite(7, LOW); // реле ВКЛЮЧЕНО (для модулей active-LOW)
digitalWrite(7, HIGH); // реле ВЫКЛЮЧЕНО
Проверьте свой модуль: обычно есть светодиод и надпись. Для читаемости кода пишут обёртку:
const int RELAY = 7;
const bool ACTIVE_LOW = true;
void relay(bool on) {
digitalWrite(RELAY, ACTIVE_LOW ? !on : on);
}
При старте платы пин может дёрнуться — для active-LOW модулей при инициализации сначала digitalWrite(HIGH), потом pinMode(OUTPUT) — иначе реле клацнет при включении.
Пример: лампа по датчику движения
const int RELAY = 7;
const int PIR = 2;
void setup() {
digitalWrite(RELAY, HIGH); // сразу выключено для active-LOW
pinMode(RELAY, OUTPUT);
pinMode(PIR, INPUT);
}
void loop() {
bool motion = digitalRead(PIR) == HIGH;
relay(motion);
delay(50);
}
Опторазвязка и отдельное питание
Хорошие модули имеют оптрон между IN и катушкой — гальваническая развязка Arduino от реле. При питании катушки от Arduino эта развязка частично теряется (общий GND). Для настоящей развязки катушку питают отдельным источником через JD-VCC (перемычка на модуле), а IN управляется через оптрон — тогда 220-сторона и логика полностью изолированы.
На практике для любительских проектов достаточно общего GND — но для промышленной надёжности смотрите на модули с JD-VCC.
Твердотельные реле (SSR)
Для частых переключений механическое реле изнашивается и щёлкает. SSR — полупроводниковые: бесшумные, быстрые, долговечные, но:
- AC-SSR коммутируют только переменку;
- имеют утечку ~мА в выключенном состоянии;
- греются при токах — нужен радиатор.
Для бытовых проектов обычное реле проще и дешевле.
Типичные проблемы
- Реле щёлкает при включении платы: при инициализации сначала установите HIGH, потом pinMode (для active-LOW).
- Не коммутирует 220В: проверьте, что фаза на COM, а не на ноль; механический щелчок ≠ коммутация.
- Помехи и сброс Arduino: ЭДС катушки реле — конденсатор по питанию модуля, экранированные провода, разносите низковольтную и сетевую части.
- Реле залипает: контакты сварились при большом токе или индуктивной нагрузке — берите реле с запасом и RC-снаббер для AC.
- IN принимает 3.3V плохо: для ESP8266/ESP32 5-вольтовая катушка реле может не переключиться от 3.3 В — нужен транзистор или 3.3V-совместимый модуль.
Итог
Реле — мост между 5-вольтовой логикой Arduino и 220-вольтовой сетью. Набор правил: active-LOW у большинства модулей, коммутировать фазу, общий GND для логики, отдельный JD-VCC для реальной развязки, и главное — безопасность прежде всего. С этим вы управите светом, розетками, вентиляторами и котлом.
Полный пример: управление реле
const int RELAY = 7;
void setup() {
pinMode(RELAY, OUTPUT);
digitalWrite(RELAY, HIGH); // выкл (модуль активен по LOW!)
Serial.begin(9600);
}
void loop() {
digitalWrite(RELAY, LOW); // включить
Serial.println("реле ВКЛ");
delay(3000);
digitalWrite(RELAY, HIGH); // выключить
Serial.println("реле ВЫКЛ");
delay(3000);
}
Активный уровень: LOW или HIGH
Большинство модулей реле активны по LOW: подаёте 0 — реле включается, подаёте 1 — выключается. Это защита: при сброшенном микроконтроллере (все пины в высоком импедансе, читаются как HIGH) реле остаётся выключенным. Но в скетче логика инвертирована — не путайтесь.
Проверьте свой модуль: на плате обычно написано «LOW Level Trigger» или перемычка выбора.
Модуль реле: что внутри
Типовой модуль на 1–8 реле содержит:
- реле Songle SRD-05VDC (5 В катушка, 10 А/250 В контакты);
- транзистор-ключ для управления катушкой;
- обратный диод от ЭДС;
- опторазвязку (на лучших модулях);
- светодиод индикации.
Опторазвязка гальванически разделяет логику и силовую сторону — безопаснее для МК.
Безопасность 220 В: правила без исключений
- Работайте только обесточенным — отключите автомат и проверьте индикатором.
- Используйте клеммники и изолированные соединения — никаких «скруток на весу».
- Разделите зоны: 5 В логика и 220 В нагрузка — в разных частях корпуса.
- Предохранитель в разрыв фазы — на всякий случай.
- Ток нагрузки ≤ 80 % номинала реле — для 10 А реле нагрузка до 8 А.
- Не переключайте индуктивные нагрузки (двигатели) без снаббера — искрение убивает контакты.
- Землю (PE) коммутировать нельзя — только фазу или ноль.
Альтернативы механическому реле
- Твердотельное реле (SSR) — без механики, бесшумно, быстрое переключение. Для частых коммутаций и ШИМ-управления нагревателями.
- Симисторный модуль — диммер для ламп накаливания.
- Реле с dry contact — для сигнальных цепей без нагрузки.
Проекты
- Умная розетка с расписанием.
- Управление освещением с датчика движения.
- Термостат для обогревателя.
- Полив по таймеру.
- Контроль доступа — электрозамок.