Твердотельное реле и Arduino: подключение SSR-40 DA, управление нагревателем, отличия от обычного
Твердотельное реле — выключатель без механики: внутри симистор и оптопара, а снаружи клеммы. Оно не щёлкает, не изнашивается и переключается тысячи раз без последствий. Именно поэтому его ставят на нагреватели: включать десять раз в минуту, чтобы держать температуру, механическое реле не выдержит и месяца.
Вход у SSR-40 DA принимает от 3 до 32 В и берёт несколько миллиампер — это единственное реле, которое подключается к выводу Arduino напрямую, без транзистора. Выход — переменное напряжение до 380 В и 40 А по паспорту; на практике без радиатора — ампер десять.
Схема подключения
Распиновка
| Провод | Куда и зачем |
|---|---|
| Вход + (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 Гц с переходом через ноль не дружит. Управляйте долей времени, как в скетче.
Сгорело при первом включении
На выход подали нагрузку с пусковым током в десятки ампер — мотор или трансформатор. Для индуктивных нагрузок берут реле с запасом втрое и тип без перехода через ноль.
Что понадобится
- Твердотельное реле SSR-40 DA (или SSR-25 DA)
- Радиатор и термопаста
- Arduino UNO
- Провода «папа-мама»