SSR (Твердотельное реле) — Бесшумная мощность
Твердотельное реле (SSR — Solid State Relay) — это полупроводниковый аналог электромеханического реле. Внутри нет движущихся частей: вместо катушки и контактов — светодиод, фототранзистор и силовой ключ (симистор или MOSFET). Результат: бесшумность, долговечность, высокая скорость.
Типы SSR
SSR для переменного тока (AC-SSR)
Внутри — симистор (TRIAC) или два встречно-параллельных тиристора.
Вход (3-32V DC) Выход (24-480V AC)
│ │
[LED]──[Фото]──[Драйвер]──[TRIAC]──> Нагрузка AC
│ триак │
GND Neutral
Особенность: Переключение происходит в момент перехода напряжения через ноль (Zero-Cross). Это уменьшает помехи и броски тока.
SSR для постоянного тока (DC-SSR)
Внутри — MOSFET (один или несколько параллельно).
Вход (3-32V DC) Выход (5-60V DC)
│ │
[LED]──[Фото]──[Драйвер]──[MOSFET]──> Нагрузка DC
│ │
GND GND
Особенность: Переключение мгновенное, подходит для ШИМ.
Характеристики популярных SSR
| Модель | Тип | Напряжение входа | Нагрузка | Ток | Применение |
|---|---|---|---|---|---|
| SSR-25DA | AC | 3-32V DC | 24-380V AC | 25A | Нагреватели |
| SSR-40DA | AC | 3-32V DC | 24-480V AC | 40A | Промышленность |
| SSR-10DD | DC | 3-32V DC | 5-60V DC | 10A | Светодиоды |
| G3MB-202P | AC | 5V DC | 100-240V AC | 2A | Малые нагрузки |
| Fotek SSR-40DA | AC | 3-32V DC | 24-380V AC | 40A | Популярный |
Схема подключения AC-SSR
Управление нагревателем 220V
Arduino SSR-25DA Нагреватель
5V ─────────────────── + (вход) 220V
GND ─────────────────── - (вход) │
D9 ──[1kΩ]───┬──────── + (вход) │
│ │
GND │
│
LOAD ─────── Фаза (L) ───────────┤
LOAD ─────────────────────────── Нагреватель
│
Нейтраль (N) ────────┘
Внимание: SSR требует радиатор при токах выше 5A! Без него температура корпуса может достигать 100°C.
Схема с Arduino и термодатчиком
#include <OneWire.h>
#include <DallasTemperature.h>
#define SSR_PIN 9
#define TEMP_PIN 2
#define TARGET_TEMP 60.0 // Целевая температура
OneWire oneWire(TEMP_PIN);
DallasTemperature sensors(&oneWire);
void setup() {
pinMode(SSR_PIN, OUTPUT);
digitalWrite(SSR_PIN, LOW);
sensors.begin();
Serial.begin(115200);
}
void loop() {
sensors.requestTemperatures();
float temp = sensors.getTempCByIndex(0);
Serial.print("Температура: ");
Serial.print(temp);
Serial.print("°C ");
if (temp < TARGET_TEMP - 1.0) {
digitalWrite(SSR_PIN, HIGH); // Включить нагрев
Serial.println("Нагрев ВКЛ");
} else if (temp > TARGET_TEMP + 1.0) {
digitalWrite(SSR_PIN, LOW); // Выключить нагрев
Serial.println("Нагрев ВЫКЛ");
}
delay(1000);
}
Схема подключения DC-SSR
Управление светодиодной лентой 12V
Arduino SSR-10DD LED-лента 12V
5V ─────────────────── + (вход) +12V ────┐
GND ─────────────────── - (вход) │
D9 (PWM) ────────────── + (вход) [Лента] │
│
+LOAD ─────── +12V ──────────────────┘
-LOAD ─────── GND ленты
Преимущество DC-SSR: Можно использовать ШИМ для плавного управления яркостью (в отличие от AC-SSR с Zero-Cross).
Тепловой расчёт
Падение напряжения и потери
В открытом состоянии SSR имеет фиксированное падение напряжения:
- AC-SSR (симистор): ~1.2-1.6V
- DC-SSR (MOSFET): ~0.2-0.5V
Мощность потерь:
$$ P_{loss} = V_{drop} \times I_{load} $$Пример для SSR-25DA при токе 20A:
$$ P_{loss} = 1.4V \times 20A = 28 \text{ Вт} $$28 Вт — это серьёзный нагрев! Без радиатора SSR сгорит.
Выбор радиатора
Тепловое сопротивление:
$$ R_{\theta} = \frac{T_{max} - T_{ambient}}{P_{loss}} $$Для SSR с $T_{max} = 80°C$, $T_{ambient} = 25°C$, $P_{loss} = 28W$:
$$ R_{\theta} = \frac{80 - 25}{28} = 1.96 \text{ °C/Вт} $$Нужен радиатор с тепловым сопротивлением <2 °C/Вт (довольно большой!).
Таблица радиаторов
| Ток нагрузки | Потери (AC-SSR) | Радиатор | Размер примерно |
|---|---|---|---|
| 5A | 7 Вт | Маленький | 50×50×20 мм |
| 10A | 14 Вт | Средний | 80×80×30 мм |
| 20A | 28 Вт | Большой | 100×100×40 мм |
| 40A | 56 Вт | Огромный + вентилятор | 150×150×50 мм |
ШИМ-управление через AC-SSR
AC-SSR с Zero-Cross (переключение при нуле) не поддерживает обычный ШИМ! Вместо этого используется Phase Angle Control или Burst-Fire Control.
Burst-Fire (пакетное управление)
Включаем SSR на N полупериодов из M:
// Burst-fire для AC-SSR (50 Гц = 100 полупериодов/сек)
#define SSR_PIN 9
int powerLevel = 50; // 0-100%
void setup() {
pinMode(SSR_PIN, OUTPUT);
}
void loop() {
static int counter = 0;
// Каждые 10 мс (полупериод 50 Гц)
if (counter < powerLevel) {
digitalWrite(SSR_PIN, HIGH);
} else {
digitalWrite(SSR_PIN, LOW);
}
counter++;
if (counter >= 100) counter = 0;
delay(10); // ~100 Гц цикл
}
Недостаток: При низкой мощности возможно мерцание света.
Типичные проблемы
SSR не выключает нагрузку полностью
- Ток утечки — симисторы имеют ток утечки 1-10 мА
- Для маломощных нагрузок (<50 Вт) утечка может быть заметна
- Решение: Добавить параллельно нагрузке резистор-“bleeder” 10-100 кОм
SSR сильно греется
- Радиатор слишком маленький или отсутствует
- Нет термопасты между SSR и радиатором
- Ток превышает номинальный
SSR включается само по себе
- Помехи на входе — добавьте конденсатор 100 нФ параллельно входу
- Слишком длинные провода до GPIO — используйте экранированный кабель
- Неисправность SSR — проверьте мультиметром
“Щёлканье” при Zero-Cross
- Это нормально для AC-SSR — физического контакта нет, но электрический процесс слышен
- Для полной тишины используйте DC-SSR с ШИМ + выпрямитель
Сравнение с электромеханическим реле
| Параметр | Электромеханическое | SSR |
|---|---|---|
| Шум | Щелчки | 🔇 Бесшумно |
| Скорость | 5-15 мс | <1 мс |
| Износ | 10⁵-10⁷ циклов | >10⁸ циклов |
| Ток утечки | 0 | мА |
| Падение напряжения | <0.1V | 1-2V |
| Нагрев | Катушка (~0.5 Вт) | До 50+ Вт |
| Радиатор | Не нужен | Нужен при >5A |
| Цена (25A) | $2-5 | $5-15 |
Применение
- 🌡️ Термостаты — управление нагревателями, ТЭНами
- 💡 Диммеры — плавное управление лампами накаливания
- 🏭 Промышленность — станки, печи, конвейеры
- 🔬 Лаборатории — прецизионный контроль температуры
- 🏠 Умный дом — бесшумное управление освещением
