ELECTRONICS

Твердотельное реле и Arduino: подключение SSR-40 DA, управление нагревателем, отличия от обычного

РелеСкетч проверен компиляцией

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

Вход у SSR-40 DA принимает от 3 до 32 В и берёт несколько миллиампер — это единственное реле, которое подключается к выводу Arduino напрямую, без транзистора. Выход — переменное напряжение до 380 В и 40 А по паспорту; на практике без радиатора — ампер десять.

Схема подключения

1~24 ~ 380VAC~2FOTEKCESSR-40 DAcURUSSolid State ModuleMade in TaiwanInput43 ~ 32VDC+3
Наведите на провод или нажмите на него — расскажу, зачем он нужен.

Распиновка

ПроводКуда и зачем
Вход + (3), вход − (4)Управляющий сигнал 3–32 В постоянного тока. Прямо с вывода Arduino.
Выход 1 и 2Клеммы нагрузки, включаются в разрыв фазного провода. Переменное напряжение 24–380 В.

Характеристики

Вход
3–32 В постоянного, около 10 мА
Выход
24–380 В переменного, до 40 А с радиатором
Без радиатора
не больше 8–10 А
Переключение
при переходе через ноль
Ток утечки
до 10 мА в закрытом состоянии
Падение на выходе
около 1,5 В — греется 1,5 Вт на ампер

Управление мощностью нагревателя

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

Обычной ШИМ с analogWrite реле не управляется: частота 490 Гц не совпадает с переходами через ноль, и реле просто держится открытым.

Нагрев и радиатор

На выходе реле теряется около полутора вольт. При десяти амперах это пятнадцать ватт тепла — как маленький паяльник. Корпус рассчитан на установку на радиатор через термопасту; без радиатора ставят только на нагрузку в единицы ампер.

Реле не размыкает цепь полностью: в закрытом состоянии течёт ток утечки до 10 мА. Индикаторная лампочка на выходе будет тлеть, а для обслуживания нагрузки цепь всё равно надо обесточивать выключателем.

Библиотека

не нужнаdigitalWrite. Для регулировки мощности — millis и доля времени, как в скетче.

Готовый скетч

// Нагреватель через SSR: мощность регулируется долей времени в периоде
const int SSR_PIN = 7;
const unsigned long PERIOD_MS = 2000;   // период регулирования
int powerPercent = 40;                  // мощность, 0..100

void setup() {
  pinMode(SSR_PIN, OUTPUT);
  digitalWrite(SSR_PIN, LOW);
}

void loop() {
  unsigned long phase = millis() % PERIOD_MS;
  unsigned long onTime = PERIOD_MS * powerPercent / 100;
  digitalWrite(SSR_PIN, phase < onTime ? HIGH : LOW);

  // здесь можно читать термодатчик и менять powerPercent
}

Скетч собирается arduino-cli под Arduino UNO

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

Частые ошибки

Реле включилось и не выключается

Нагрузка слишком маленькая: ток ниже удерживающего, и симистор не закрывается. Или на выходе постоянное напряжение — реле типа DA работает только с переменным.

Лампа на выходе тлеет при выключенном реле

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

Реле горячее

Полтора ватта на ампер. Радиатор с термопастой, или нагрузка меньше.

Не работает через analogWrite

ШИМ на 490 Гц с переходом через ноль не дружит. Управляйте долей времени, как в скетче.

Сгорело при первом включении

На выход подали нагрузку с пусковым током в десятки ампер — мотор или трансформатор. Для индуктивных нагрузок берут реле с запасом втрое и тип без перехода через ноль.

Что понадобится