База знаний · Датчики и модули

Реле и Arduino: как включить нагрузку 220 В

Реле изнашивает не нагрузка, а плохо написанный термостат: один порог вместо двух сокращает срок службы контактов с года до недели.

Плата Arduino умеет выдавать пять вольт и двадцать миллиампер — этого хватает светодиоду. Настольная лампа, насос, обогреватель, ёлочная гирлянда живут в другом мире: там двести двадцать вольт и амперы. Реле — это переводчик между двумя мирами. Плата говорит «включи», а реле механически замыкает контакты, через которые идёт настоящий ток.

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

Сначала о безопасности

220 вольт опасны для жизни. Это не формальная оговорка: ток от сетевого напряжения проходит через тело и останавливает сердце. Модуль реле стоит 190 рублей, а ошибка стоит дороже. Правила простые, и они не обсуждаются:

  • Собирать и пересобирать схему можно только при вынутой из розетки вилке. Не «выключив выключателем», а именно вынув вилку.
  • Сетевые провода не заводят на макетную плату и не скручивают. Только винтовой клеммник модуля, затянутый до упора.
  • Готовое устройство закрывают корпусом, чтобы до сетевой части нельзя было дотронуться пальцем.
  • Пока учитесь — берите не розетку, а настольную лампу на 12 вольт или ленту от блока питания. Всё то же самое, только безопасно.
  • Ребёнку — только вместе со взрослым, у которого есть опыт работы с сетевым напряжением.

И ещё одно, про что забывают: контакты реле разрывают одну линию. Если разорвать ноль, а не фазу, лампа погаснет, но патрон останется под напряжением. Поэтому в разрыв ставят фазу — а какой из двух проводов фаза, показывает индикаторная отвёртка.

Чем вообще включают нагрузку

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

Чем включаемКакой токПределЦенаХорошоПлохо
Электромеханическое релепеременный и постоянный токдо 250 В, до 10 Аот 90 ₽включает что угодно, полная развязкащёлкает, изнашивается, ест 75 мА
Твердотельное релетолько переменный ток75–264 В, до 2 Аот 126 ₽молчит, не изнашивается, ест 12 мАгреется, немного протекает, дороже
Силовой ключ (транзистор)только постоянный токдо 30 В, до 10 Аот 190 ₽молчит, умеет плавно (ШИМ)общий провод с нагрузкой, не для сети
Модуль реле по I²Cпеременный и постоянный токдо 250 В, до 10 Аот 590 ₽два провода на любое число модулейдороже, нужна библиотека

Простое правило: розетка — реле или твердотельное реле, лента и мотор от блока питания — силовой ключ. Если нужно менять яркость или обороты, реле не подойдёт вовсе: оно умеет только «да» и «нет», а плавность даёт транзистор с ШИМ.

Arduino5 В, безопасноVCCGNDIN15 В с платыобщийвывод 7: ноль включаетМодуль реле арт. 53катушка и контактыщёлкаетдальше 220 вольтЛампа 220 Вконтакты в разрыв фазысвоя розеткаСетевые провода не заводят на макетную плату — только в клеммник модуляКонтакты реле — это просто выключатель:он не знает, что через него идёт, и не связан с платой
Три способа включить нагрузку с платы. Общее у них одно: сама плата нагрузку не питает, она только даёт команду.

Что внутри реле: NO, NC и COM

Внутри реле два независимых узла. Первый — катушка: моток провода, который становится магнитом, когда через него идёт ток. Второй — механический выключатель, который этот магнит притягивает. Между ними нет электрической связи, только магнитное поле, — поэтому реле и разделяет пять вольт платы и двести двадцать вольт нагрузки. Изоляция катушки от контактов у нашего реле рассчитана на 500 вольт переменного тока в течение минуты.

Сторона платы: 5 вольтСторона нагрузки: хоть 220катушка70 Ом, 71 мАтока нет, пружина держит якорьякорьCOMNC — замкнут без командыNO — замкнут по командеМежду катушкой и контактами нет электрической связи:изоляция выдерживает 500 вольт в течение минутыРеле возвращается в это положение само, за 5 мс
Реле — это электромагнит, который двигает механический выключатель. Отсюда и щелчок, и ограниченный ресурс, и полная развязка сторон.

У контактов три вывода, и это те самые загадочные буквы на плате:

  • COM (common, общий) — сюда приходит провод, который нужно коммутировать;
  • NO (normally open, нормально разомкнутый) — замкнут, только пока подана команда. Обычный случай: нет питания — нет тока;
  • NC (normally closed, нормально замкнутый) — наоборот, разомкнут только по команде.

Выбор между NO и NC — это ответ на вопрос «что должно случиться, если плата зависнет или её выдернут из розетки». Вентилятор охлаждения разумно вешать на NC: без питания он будет крутиться всегда. Обогреватель — на NO: без питания он выключится.

Почему катушку нельзя подключить прямо к выводу

Соблазн понятный: у реле два вывода катушки, у платы полно выводов. Считаем. Сопротивление катушки нашего реле — 70 Ом, напряжение — 5 вольт. По закону Ома ток равен

5 В ÷ 70 Ом = 0,071 А = 71 мА

Предельный ток вывода ATmega328P — 40 мА, и это абсолютный максимум из даташита, за которым начинается «поведение не гарантируется». Рекомендуемый рабочий ток — 20 мА. Катушке нужно втрое больше. Вывод не сгорит эффектно, он деградирует: сначала перестанет держать уровень, потом отвалится совсем.

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

Из тех же 75 миллиампер на канал следует то, о чём вспоминают поздно: восьмиканальный модуль при всех включённых реле просит 600 мА. Обычный USB-порт даёт 500. Поэтому у модулей есть перемычка JD-VCC: если её снять и подать на JD-VCC отдельные пять вольт, логика останется на питании платы, а катушки будут есть из своего источника.

Модуль включается нулём — и щёлкает при старте

Самая частая жалоба новичка: «реле работает наоборот». Оно и правда работает наоборот. У модулей на 1, 2, 4, 8 и 16 каналов реле срабатывает при подаче на вход логического нуля, а не единицы, — так написано и в карточке товара. Причина в схеме: вход зажигает светодиод оптопары, который включён к плюсу питания.

Отсюда вытекает вторая неприятность, куда менее очевидная. После сброса платы все выводы — входы, а в регистре вывода лежит ноль. Стоит сделать вывод выходом до того, как задан уровень, — и на нём на мгновение появится ноль, то есть команда «включись».

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

сначала уровень, потом выход   реле щёлкнуло при старте: нет
сначала выход, потом уровень   реле щёлкнуло при старте: ДА (2 раза)

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

// Первая проверка модуля реле. Нагрузку пока не подключаем:
// слушаем щелчки и смотрим на светодиод канала.
const int PIN_RELAY = 7;

void setup() {
  // Порядок этих двух строк важен. Модуль включается НУЛЁМ, а вывод
  // после сброса платы хранит в регистре ноль. Сделай его сначала
  // выходом — и реле щёлкнет само, до первой команды.
  digitalWrite(PIN_RELAY, HIGH);
  pinMode(PIN_RELAY, OUTPUT);
}

void loop() {
  digitalWrite(PIN_RELAY, LOW);   // ноль на входе IN: контакты замкнуты
  delay(5000);
  digitalWrite(PIN_RELAY, HIGH);  // единица: контакты разомкнуты
  delay(5000);
}

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

Кнопка-выключатель и свет по таймеру

Реле само по себе бесполезно — интересно то, что им управляет. Самый частый случай: кнопка, которая переключает нагрузку. Механическая кнопка дребезжит, поэтому нажатия считаем не по уровню, а по смене уровня, и игнорируем всё, что происходит быстрее тридцати миллисекунд.

// Кнопка-выключатель: нажали — включилось, нажали ещё раз — выключилось.
const int PIN_RELAY = 7;
const int PIN_BUTTON = 2;

// Механическая кнопка звенит контактами несколько миллисекунд.
const unsigned long BOUNCE_MS = 30;

bool on = false;
int lastLevel = HIGH;
unsigned long lastChange = 0;

// Модуль с электромеханическим реле включается нулём.
void setRelay(bool state) {
  digitalWrite(PIN_RELAY, state ? LOW : HIGH);
  on = state;
}

void setup() {
  digitalWrite(PIN_RELAY, HIGH);
  pinMode(PIN_RELAY, OUTPUT);
  pinMode(PIN_BUTTON, INPUT_PULLUP);
}

void loop() {
  int level = digitalRead(PIN_BUTTON);
  if (level != lastLevel && millis() - lastChange > BOUNCE_MS) {
    lastChange = millis();
    lastLevel = level;
    if (level == LOW) {
      setRelay(!on);
    }
  }
}

Второй частый случай — свет, который выключается сам. Здесь важна одна привычка: никаких delay() на пятнадцать минут. Пока плата стоит в задержке, она не видит ни кнопку, ни датчик. Считаем время по millis():

// Свет в кладовке: нажали кнопку — включилось, через 15 минут гаснет само.
const int PIN_RELAY = 7;
const int PIN_BUTTON = 2;

const unsigned long WORK_MS = 15UL * 60UL * 1000UL;
const unsigned long BOUNCE_MS = 30;

bool on = false;
unsigned long startedAt = 0;
int lastLevel = HIGH;
unsigned long lastChange = 0;

void setRelay(bool state) {
  digitalWrite(PIN_RELAY, state ? LOW : HIGH);
  on = state;
}

void setup() {
  digitalWrite(PIN_RELAY, HIGH);
  pinMode(PIN_RELAY, OUTPUT);
  pinMode(PIN_BUTTON, INPUT_PULLUP);
}

void loop() {
  int level = digitalRead(PIN_BUTTON);
  if (level != lastLevel && millis() - lastChange > BOUNCE_MS) {
    lastChange = millis();
    lastLevel = level;
    // Каждое нажатие начинает отсчёт заново.
    if (level == LOW) {
      startedAt = millis();
      setRelay(true);
    }
  }
  if (on && millis() - startedAt >= WORK_MS) {
    setRelay(false);
  }
}

Подробный разбор этого приёма — в статье «millis() вместо delay()».

Термостат: одна строка, которая экономит год жизни реле

А теперь главный опыт статьи. Термостат — самое популярное применение реле: датчик температуры, порог, нагреватель. Пишется он в четыре строки, и почти все пишут его так:

// ТАК ДЕЛАТЬ НЕ НАДО — этот термостат изнашивает реле.
// Порог один на включение и на выключение, поэтому у самой границы
// реле щёлкает на каждое дрожание показаний датчика.
#include <iarduino_DS18XXX.h>

const int PIN_RELAY = 7;
const float TARGET = 25.0;

iarduino_DS18XXX sensor(4);

void setup() {
  digitalWrite(PIN_RELAY, HIGH);
  pinMode(PIN_RELAY, OUTPUT);
}

void loop() {
  float t = sensor.get_Temp();
  if (t < TARGET) {
    digitalWrite(PIN_RELAY, LOW);   // холодно: греем
  } else {
    digitalWrite(PIN_RELAY, HIGH);  // тепло: не греем
  }
  delay(1000);
}

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

Мы собрали оба скетча — этот и правильный — обычным компилятором и прогнали через одну и ту же модель комнаты: нагреватель поднимает температуру на 0,01 °C в секунду, комната остывает с постоянной времени десять минут, датчик DS18B20 со шкалой 0,0625 °C. Сутки работы:

Мёртвая зонаПереключений за суткиВ часХватит ресурса реле на
нет16 3856836 дней
0,1 °C55623полгода
0,2 °C499217 месяцев
0,5 °C2311014 месяцев
1,0 °C6334 года

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

24,525,025,5цель 25 °Cреле010203040минуты466 щелчков за 40 минутТемпература держится идеально ровно — ценой ресурса реле
Это не рисунок для красоты: оба скетча из статьи собраны обычным компилятором и прогнаны через одну и ту же модель комнаты. Отличие между ними — три строки кода.

Самое интересное видно на третьей вкладке. Настоящая температура в модели стоит на месте — за две минуты она меняется на две сотые градуса. А датчик показывает то 24,875, то 24,9375, то ровно 25,0: шкала DS18B20 в двенадцати битах имеет шаг 0,0625 °C, и соседние отсчёты гуляют между ними. Каждый раз, когда показание дотягивается до порога, реле щёлкает.

Мы проверили и обратное: выключили в модели дрожание датчика совсем, оставив идеально ровную шкалу. Плохой термостат насчитал 16 859 переключений вместо 16 385 — то есть дело даже не в шуме датчика, а в самом правиле «один порог на включение и на выключение». Хороший в том же опыте дал 203.

Правильный термостат отличается тремя вещами:

// Термостат, который бережёт реле: мёртвая зона вокруг цели
// и запрет щёлкать чаще одного раза в минуту.
#include <iarduino_DS18XXX.h>

const int PIN_RELAY = 7;
const float TARGET = 25.0;

// Греем до 25,5 и не включаемся снова, пока не остынет до 24,5.
const float GAP = 0.5;
// Даже если показания скачут, реле переключается не чаще раза в минуту.
const unsigned long MIN_PAUSE_MS = 60000;

iarduino_DS18XXX sensor(4);

bool heating = false;
unsigned long lastSwitch = 0;

void setRelay(bool state) {
  digitalWrite(PIN_RELAY, state ? LOW : HIGH);
  lastSwitch = millis();
  heating = state;
}

void setup() {
  digitalWrite(PIN_RELAY, HIGH);
  pinMode(PIN_RELAY, OUTPUT);
  Serial.begin(9600);
  // Вычитаем паузу, чтобы первое включение не ждало целую минуту.
  lastSwitch = millis() - MIN_PAUSE_MS;
}

void loop() {
  float t = sensor.get_Temp();
  if (millis() - lastSwitch >= MIN_PAUSE_MS) {
    if (!heating && t < TARGET - GAP) {
      setRelay(true);
      Serial.println("Нагрев включён");
    }
    if (heating && t > TARGET + GAP) {
      setRelay(false);
      Serial.println("Нагрев выключен");
    }
  }
  delay(1000);
}

Первое — мёртвая зона (её называют гистерезисом): включаем, когда стало холоднее 24,5, а выключаем, когда стало теплее 25,5. Между ними реле не трогаем вовсе. Второе — минимальная пауза между переключениями: даже если показания скакнут, чаще раза в минуту реле не щёлкнет. Третье — команда реле отдаётся только в момент смены состояния, а не в каждом проходе цикла.

Честно скажем и про обратную сторону: плохой термостат держит температуру точнее. В нашем опыте он удерживал 24,89–24,95 °C, а хороший гулял между 24,45 и 25,47. Для инкубатора или аквариума эта разница может быть важна — тогда мёртвую зону уменьшают, но не до нуля, а до 0,2 градуса, и обязательно оставляют минимальную паузу. Либо берут твердотельное реле, которому щелчки не страшны.

Сколько живёт реле

В даташите реле SRD-05VDC-SL-C, на котором собраны наши модули, ресурс указан двумя разными числами, и это важно:

  • механический ресурс — 10 миллионов операций, но это «вхолостую», когда через контакты не идёт ток;
  • электрический ресурс — 100 тысяч операций под нагрузкой. В сто раз меньше.

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

Отсюда и последний столбец таблицы выше: 100 000 ÷ 16 385 ≈ 6 дней для термостата без мёртвой зоны и 100 000 ÷ 231 ≈ 433 дня для термостата с ней. Реле за девяносто рублей, которое должно было работать годами, умирает за неделю — и ни одной ошибки компиляции при этом не случилось.

Там же в даташите есть строка, которую стоит запомнить отдельно: предельная частота переключений механически 300 в минуту, а под нагрузкой — 30 в минуту. В карточках товаров (и в нашей тоже) обычно приводят первое число.

Десять ампер на корпусе — это не про вашу нагрузку

На корпусе реле крупно напечатано «10A 250VAC». Это правда, но правда неполная: десять ампер относятся к резистивной нагрузке при 125 вольтах. Полная таблица из даташита выглядит так:

Что включаемСколько выдержитПримечание
Лампа накаливания, обогреватель (125 В)10 Ато самое число, что напечатано на корпусе
То же самое в нашей сети 220–240 В7 Аоколо 1,6 кВт — уже не 2,4
Мотор, насос, компрессор (120 В)3 Аиндуктивная нагрузка, cos φ 0,4
Постоянный ток 28 В7 Арезистивная нагрузка
Постоянный ток 28 В, мотор3 Адуга при размыкании не гаснет сама

В нашей сети 220–240 вольт паспортный предел — 7 ампер, это примерно полтора киловатта, и ровно эту цифру производитель модуля называет в карточке рекомендуемым пределом. А если нагрузка индуктивная — мотор, насос, компрессор, трансформатор — предел падает до трёх ампер: у такой нагрузки ток при включении в разы больше рабочего, а при выключении дуга не хочет гаснуть.

Практический вывод: чайник (2 кВт) через модуль реле включать не надо. Для мощной нагрузки реле ставят не на саму нагрузку, а на катушку магнитного пускателя — контактора, рассчитанного на такие токи.

Твердотельное реле: тише, дольше, но со своими правилами

Твердотельное реле делает ту же работу без движущихся частей: внутри оптопара и симистор. Оно не щёлкает, не изнашивается и переключается за миллисекунду. Наш Trema-модуль (арт. 704, 261 ₽) включается единицей — не нулём, как модуль с электромеханическим реле:

// Твердотельное реле включается ЕДИНИЦЕЙ — не нулём, как модуль
// с электромеханическим реле. И коммутирует только переменный ток.
const int PIN_SSR = 5;

// Вентилятор в теплице: десять минут работы каждый час.
const unsigned long HOUR_MS = 60UL * 60UL * 1000UL;
const unsigned long WORK_MS = 10UL * 60UL * 1000UL;

unsigned long cycleStart = 0;

void setup() {
  pinMode(PIN_SSR, OUTPUT);
  digitalWrite(PIN_SSR, LOW);
  cycleStart = millis();
}

void loop() {
  unsigned long inCycle = millis() - cycleStart;
  if (inCycle >= HOUR_MS) {
    cycleStart += HOUR_MS;
    inCycle = millis() - cycleStart;
  }
  digitalWrite(PIN_SSR, inCycle < WORK_MS ? HIGH : LOW);
}

Но у него три особенности, о которых нужно знать заранее.

Только переменный ток. Реле замыкает цепь в момент, когда сетевое напряжение переходит через ноль, — это бережёт нагрузку от броска тока. Но у постоянного напряжения перехода через ноль нет, и разомкнуть такую цепь реле не сможет: включив, оно останется включённым. Для постоянного тока нужен силовой ключ (арт. 628, 190 ₽).

Оно немного протекает. Ток утечки — 1 мА при 100 вольтах и 1,5 мА при 200. Это не ошибка, а свойство симистора: через выключенное реле продолжает течь около трети ватта. Лампа накаливания этого не заметит, а светодиодная или люминесцентная может тускло светиться или моргать в выключенном состоянии.

Оно греется. На открытом симисторе падает до 1,6 вольта, и при токе 2 ампера это 1,6 × 2 = 3,2 Вт тепла на маленьком корпусе. У механического реле сопротивление контактов 100 мОм, и на том же токе выделяется в восемь раз меньше. Поэтому мощные твердотельные реле ставят на радиатор: у SSR-1 D4810 (арт. 1608, 590 ₽) радиатор нужен уже с двух ампер.

Когда каналов много

Один канал — 90 рублей, восемь — 890, шестнадцать — 2421. Но выводов у Uno всего двадцать, и восьмиканальный модуль займёт почти половину. Если каналов нужно много, разумнее взять модуль реле FLASH-I2C (арт. 1157, 590 ₽): он живёт на шине I²C, занимает два провода на все модули сразу, а свой адрес умеет менять программно — на одну шину их можно повесить больше сотни.

// Модуль реле FLASH-I2C: два провода на любое число модулей,
// цифровые выводы платы остаются свободными.
#include <Wire.h>
#include <iarduino_I2C_Relay.h>

// 0x09 — адрес модуля с завода, его можно поменять программно.
iarduino_I2C_Relay relay(0x09);

void setup() {
  Wire.begin();
  relay.begin();
}

void loop() {
  relay.digitalWrite(1, HIGH);   // первый канал: замкнули
  delay(5000);
  relay.digitalWrite(1, LOW);    // разомкнули
  delay(5000);
}

Плата за удобство — память: этот скетч занимает 309 байт ОЗУ против 9 байт у прямого управления. Шина I²C и библиотека стоят примерно полкилобайта оперативной памяти, и на Uno это заметно. Что такое I²C и почему устройств на двух проводах может быть много — в статье про шину I²C.

Не работает — что проверить

Что видноПочемуЧто делать
Реле щёлкает наоборот: включается, когда должно выключатьсямодуль срабатывает логическим нулёмпоменять местами HIGH и LOW либо переключить нагрузку с NO на NC
Реле щёлкает само в момент включения платывывод стал выходом раньше, чем на нём задали уровеньнаписать digitalWrite() перед pinMode(), а не после
Реле щёлкает без остановкипорог включения и выключения совпадаютразвести их на мёртвую зону — в статье это главный опыт
Плата перезагружается при щелчкекатушкам не хватает тока, питание проседаетснять перемычку JD-VCC и запитать катушки отдельно
Модуль не реагирует, светодиод канала не горитне соединены общие провода платы и модуляGND модуля обязательно соединить с GND платы
Выключенная лампа тускло светитсяток утечки твердотельного реле, 1,5 мАпоставить электромеханическое реле или лампу с балластом
Твердотельное реле не выключает нагрузкув цепи постоянный ток, а реле ждёт перехода через нольвзять обычное реле или силовой ключ
Контакты залипли, нагрузка не выключаетсяпусковой ток превысил то, что выдерживают контактыреле на больший ток или пускатель, а реле — на управление им

Что купить

Для первых опытов достаточно двухканального модуля реле (арт. 53, 190 ₽): два канала лучше одного, потому что почти сразу хочется включать не одну вещь, а две. Если канал нужен ровно один, есть вариант на 90 рублей (арт. 52), а для умного дома — четыре канала (арт. 243, 460 ₽) и восемь (арт. 242, 890 ₽).

Если щелчки мешают — например, реле стоит в спальне, — берите твердотельное реле G3MB-202P (арт. 473, 126 ₽) или тот же модуль в исполнении Trema (арт. 704, 261 ₽), помня про два ампера и ток утечки. Для ленты, мотора или помпы от блока питания нужен не реле, а силовой ключ (арт. 628, 190 ₽).

Для термостата из этой статьи понадобится ещё датчик DS18B20 (арт. 333, 212 ₽) — герметичный, на метровом проводе, с точностью ±0,5 °C. К нему нужен подтягивающий резистор 4,7 кОм между сигнальным проводом и питанием.

А если хочется собрать всё это без пайки и проводной путаницы, посмотрите наборы для Arduino и обзор модулей: реле там разобрано в связке с остальными деталями.

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

Почему реле включается, когда подаёшь LOW, а не HIGH?

Так устроен модуль: вход зажигает светодиод оптопары, который подключён к плюсу питания, поэтому реле срабатывает от логического нуля. Это указано и в карточке товара. У твердотельного реле и у WEMOS Relay Shield наоборот — они включаются единицей.

Можно ли подключить катушку реле прямо к выводу Arduino?

Нет. Сопротивление катушки 70 Ом, при 5 вольтах это 71 миллиампер, а предельный ток вывода ATmega328P — 40 миллиампер, рабочий рекомендуемый — 20. Нужен транзистор и диод против выброса напряжения; на готовом модуле они уже стоят.

Почему реле щёлкает без остановки в термостате?

Потому что порог включения и выключения один и тот же, а показания датчика у самой границы гуляют. Мы прогнали два скетча через модель комнаты: без мёртвой зоны реле переключилось 16 385 раз за сутки, с мёртвой зоной в полградуса — 231 раз.

Сколько лет живёт реле?

В даташите два числа: механический ресурс 10 миллионов операций без нагрузки и электрический — 100 тысяч операций под нагрузкой. При 231 переключении в сутки это чуть больше года, при 16 385 — шесть дней.

Реле рассчитано на 10 ампер — можно включать чайник?

Нет. Десять ампер относятся к резистивной нагрузке при 125 вольтах; в сети 220–240 вольт паспортный предел 7 ампер, а на индуктивной нагрузке вроде мотора — 3 ампера. Для мощной техники реле ставят на катушку магнитного пускателя, а не на саму нагрузку.

Почему выключенная лампа светится через твердотельное реле?

Через закрытый симистор течёт ток утечки: 1 миллиампер при 100 вольтах и 1,5 при 200. Лампа накаливания этого не заметит, а светодиодная может тускло гореть или моргать. Помогает обычное электромеханическое реле.

Почему твердотельное реле не выключает мою нагрузку?

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

Обновлено: 27 августа 2026