Слабый сигнал контроллера включает мощную нагрузку: лампу, насос, обогреватель. Контакты реле гальванически отделены от схемы.
Как работает
Катушка реле берёт 70–80 мА — вывод контроллера столько не даст, поэтому на модуле стоит транзистор (и часто оптрон). Контроллер подаёт на IN слабый сигнал, транзистор включает катушку, контакты замыкают цепь нагрузки: COM — общий, NO — замкнут при включённом реле, NC — при выключенном.
Во многих модулях вход инверсный: реле срабатывает от LOW. Проверьте свой модуль: если реле щёлкает при digitalWrite(IN, LOW) — он такой.
Выводы
Вывод
Назначение
COM
общий контакт реле
IN
управляющий вход
NC
нормально замкнутый: соединён с COM, пока реле выключено
NO
нормально разомкнутый: замыкается с COM, когда реле включено
⚡ В примере «Модуль реле» питается от 3V3 — в симуляторе так проще, и модель это допускает. Настоящий модуль рассчитан на 5 В: подключайте VCC к VIN (5 В от USB) или к отдельному источнику 5 В с общей землёй.
// Насос 12 В по кнопке.
//
// Кнопка на D2 с подтяжкой: нажата — LOW. Насос работает RUN_MS и
// выключается сам; повторное нажатие во время работы продлевает полив.
const int BUTTON = 2, RELAY = 7;
const unsigned long RUN_MS = 5000;
unsigned long started = 0;
bool running = false;
void setup() {
Serial.begin(9600);
pinMode(BUTTON, INPUT_PULLUP);
pinMode(RELAY, OUTPUT);
digitalWrite(RELAY, LOW);
}
void loop() {
if (digitalRead(BUTTON) == LOW) {
if (!running) Serial.println("насос включён");
running = true;
started = millis();
}
if (running && millis() - started >= RUN_MS) {
running = false;
Serial.println("насос выключен");
}
digitalWrite(RELAY, running ? HIGH : LOW);
delay(20);
}
В железе
Модуль на 5 В от ESP32: катушку питают от VIN (5 В), а вход IN с 3,3 В срабатывает не у всех модулей. Надёжный вариант — модуль на 3,3 В или с оптроном и перемычкой JD-VCC. Сетевые 230 В на контактах требуют корпуса и защиты: дорожки дешёвых модулей не всегда выдерживают заявленные 10 А.
Частые ошибки
Реле включено сразу после подачи питания — модуль с активным LOW, а вывод при старте в низком уровне. Выставляйте HIGH в setup() до pinMode(OUTPUT).
Катушка от вывода 3V3 платы — стабилизатор перегружается, плата перезагружается при каждом щелчке.