Коротко: Выбор определяют три вопроса: (1) тип нагрузки — резистивная (нагреватель, лампа накаливания) или индуктивная (мотор); (2) мощность нагрузки в ваттах → рассчитайте амперы → выберите номинал с запасом ×1,3; (3) платформа — ESP32 двухъядерный использует
rbdimmerESP32, Arduino используетRBDdimmer, одноядерный ESP32 или Raspberry Pi — DimmerLink. Таблица быстрого выбора — внизу статьи.
Как пользоваться этим руководством
Пройдите шаги по порядку. Каждый шаг сужает выбор:
- Step 1: Is your load compatible?
- Step 2: Calculate current and choose a rating
- Step 3: Platform and library
- Step 4: How many channels?
- Step 5: Standard or high-power module?
- Step 6: Should you use DimmerLink?
Or jump to the Таблица быстрого выбора.
Шаг 1: Совместима ли ваша нагрузка?
AC TRIAC-диммеры работают, отсекая часть синусоиды (фазовое управление). Не все нагрузки хорошо реагируют на это.
✅ Полностью совместимые — резистивные нагрузки
Идеальный вариант. Ток следует за напряжением в фазе, поэтому коммутация TRIAC происходит чисто:
- Лампы накаливания (любой мощности)
- Галогенные лампы (прямое сетевое или с трансформатором — см. примечания ниже)
- Нагревательные элементы и обогреватели
- Электрические бойлеры, чайники, утюги, тостеры
- Масляные радиаторы и маты тёплого пола
- Любые чисто резистивные нагревательные приборы
⚠️ Совместимые с условиями
| Нагрузка | Условия |
|---|---|
| Диммируемые LED-лампы | Должны быть маркированы «dimmable»; возможно мерцание на низких уровнях |
| Вентиляторы с асинхронным двигателем | Требуется RC-снаббер; мин. диммирование ~40–50 % |
| Центробежные насосы (индуктивные) | Требуется RC-снаббер; мин. диммирование ~60–70 % |
| Трансформаторы (галоген 12 В) | Рекомендуется RC-снаббер; реактивный ток |
| Тепловентиляторы | Мин. 40–50 %; вентилятор охлаждает ТЭН — остановка ведёт к перегреву |
| Водяные насосы | Требуется RC-снаббер |
⚠️ Индуктивные нагрузки требуют снаббер. Моторы и трансформаторы создают выбросы dv/dt при выключении TRIAC — это сокращает срок службы TRIAC и может вызвать ложное срабатывание. Добавьте RC-снаббер (R = 68–100 Ом, C = 47–100 нФ класс X2 400 В) параллельно TRIAC. Модули rbdimmer уже имеют встроенный RC-снаббер.
❌ Несовместимые
| Нагрузка | Почему |
|---|---|
| Недиммируемые LED-лампы | Мерцание, перегрев, преждевременный выход из строя |
| LED-ленты с SMPS | Импульсный БП несовместим с фазовым управлением |
| КЛЛ (энергосберегающие лампы) | Электронный балласт конфликтует с фазовым управлением |
| Электронные блоки питания | Риск повреждения |
| Электронные стабилизаторы | Конфликт с работой диммера |
ℹ️ LED-ленты (12 В / 24 В) используют импульсный блок питания (SMPS) — это не то же самое, что диммируемые LED-лампы. Нагрузки SMPS несовместимы с фазовым диммированием. Для диммирования LED-лент используйте PWM DC-контроллер, а не AC TRIAC-диммер.
Шаг 2: Рассчитайте ток и выберите номинал
Номиналы диммеров указаны в амперах (А). Большинство нагрузок указывают мощность в ваттах (Вт), поэтому сначала пересчитайте.
Формула
I = P / U
Для сети 220/230 В: I = P / 220
Для сети 110/120 В: I = P / 110Запас прочности
Всегда выбирайте диммер с запасом:
| Тип нагрузки | Коэффициент запаса | Причина |
|---|---|---|
| Резистивная (нагреватель, лампа) | × 1,3 | Пусковой ток и запас на старение |
| Индуктивная (мотор, трансформатор) | × 1,5 | Запас на реактивный ток |
| Высокий пусковой ток (холодный нагреватель, бойлер) | × 1,7 | Пусковой бросок тока |
Правило выбора: I_диммера ≥ I_нагрузки × коэффициент_запаса
Пример расчёта
Пример: Обогреватель 800 Вт при 220 В
- I = 800 / 220 = 3,6 А
- Запас (резистивная): 3,6 × 1,3 = 4,7 А
- Выбираем диммер 8 А (следующий размер от 4,7 А) ✅
Справочная таблица нагрузка–диммер
| Мощность нагрузки | Ток при 220 В | Ток при 110 В | Мин. диммер |
|---|---|---|---|
| До 200 Вт | < 1 А | < 2 А | 4 А |
| 200–500 Вт | 1–2,3 А | 2–4,5 А | 4 А |
| 500 Вт–1 кВт | 2,3–4,5 А | 4,5–9 А | 8 А |
| 1–1,5 кВт | 4,5–7 А | — | 8 А + радиатор |
| 1,5–2,5 кВт | 7–11 А | — | 16 А |
| 2,5–4,5 кВт | 11–20 А | — | 24 А |
| 4,5–7 кВт | 20–32 А | — | 40 А |
Значения рассчитаны с запасом ×1,3 для резистивных нагрузок при 220 В.
Максимальная мощность по напряжению (краткая справка)
| Диммер | Макс. при 110 В ¹ | Макс. при 220/230 В |
|---|---|---|
| 4 А | 350 Вт | 660 Вт |
| 8 А | 700 Вт | 1 300 Вт |
| 10 А (4CH) | 850 Вт/кан. | 1 700 Вт/кан. |
| 16 А | 1 300 Вт | 2 600 Вт |
| 24 А | 2 000 Вт | 4 000 Вт |
| 40 А | 3 400 Вт | 6 400 Вт |
¹ Для сети 127 В умножьте значения 110 В на 1,15 (напр. 4 А → 400 Вт, 8 А → 800 Вт).
Шаг 3: Платформа и библиотека
Микроконтроллер и программный стек определяют, какая библиотека нужна и как подключать пин ZC.
| IRAM_ATTR | Библиотека | Ограничение пина ZC | Примечания |
|---|---|---|---|
| Arduino Uno / Nano | RBDdimmer |
Только пины 2 или 3 | ATmega: 2 пина прерываний |
| Arduino Mega | RBDdimmer |
Пины 2, 3, 18–21 | 6 пинов с прерываниями |
| ESP32 (ориг., S3) | rbdimmerESP32 |
Любой GPIO | Двухъядерный; IRAM_ATTR автоматически |
| ESP32 + 16/24/40 А | rbdimmerThermalESP32 |
Любой GPIO | NTC + управление вентилятором |
| ESP32-S2/C3/H2/C6 | DimmerLink | — | Одноядерный, ISR ненадёжен |
| ESP8266 | RBDdimmer |
Любой GPIO кроме GPIO 16 | WiFi может вызвать дрожание |
| — (без ISR) | DimmerLink | — | Нет ОС реального времени для ISR |
| STM32 | RBDdimmer |
Любой GPIO с прерыванием | |
| ESPHome / Tasmota | DimmerLink | — | I2C-компонент |
| Home Assistant | DimmerLink | — | Через ESPHome или UART-мост |
⚠️ Don't use
RBDdimmeron ESP32. That library has noIRAM_ATTRon ISR handlers — it crashes when WiFi is active. UserbdimmerESP32on dual-core ESP32. See: Wrong Library: RBDdimmer vs rbdimmerESP32
Уровень логики VCC
| IRAM_ATTR | Требуемое VCC |
|---|---|
| Arduino Uno/Nano/Mega (ATmega) | 5 В |
| ❌ нет | 3,3 В |
| ESP8266 | 3,3 В |
| STM32 | 3,3 В |
Не подключайте VCC к 12 В, даже если в вашем проекте есть шина 12 В — это повредит диммер и ваш MCU.
Шаг 4: Сколько каналов?
| Модуль | Каналы | Примечания |
|---|---|---|
| 1CH 4A | 1 | Одна нагрузка, самый компактный |
| 1CH 8A | 1 | Одна нагрузка, большая мощность |
| 2CH 8A | 2 | Две независимые нагрузки, общий ZC |
| 4CH 10A | 4 | До четырёх нагрузок, общий ZC, 10 А каждый |
Все многоканальные модули используют один сигнал перехода через ноль — один пин прерывания обслуживает все каналы. Каждый пин DIM — отдельный.
Шаг 5: Стандартный или мощный модуль?
| Возможность | Стандартный (4 А, 8 А, 10 А) | Мощный (16 А, 24 А, 40 А) |
|---|---|---|
| TRIAC | Открытый TO-220 | Закрыт встроенным радиатором |
| Активное охлаждение | Нет (добавьте внешний радиатор при >200 Вт) | Встроенный вентилятор 5 В |
| Датчик температуры | Нет | NTC10 термистор в комплекте |
| Библиотека для термозащиты | — | rbdimmerThermalESP32 |
| Типичное применение | Лампы, малые нагреватели | Промышленный нагрев, бойлеры, печи |
| Размер платы | Компактный | Увеличенный |
For standard modules handling loads above 200W: add a heatsink to the TRIAC TO-220 tab (with insulating pad — the tab is at mains potential). See: TRIAC Overheating Guide
Шаг 6: Нужен ли DimmerLink?
Любой ESP32 is a separate controller that handles zero-cross detection and TRIAC timing internally. Your MCU sends only a brightness level (0–100%) via I2C or UART.
See the Platform and Library table in Step 3 for a full list of platforms where DimmerLink is the recommended choice.
Схема подключения (одинакова для любой платформы):
DimmerLink → MCU
VCC → 3.3V (ESP32) / 5V (Arduino)
GND → GND
SDA → SDA (GPIO 21 на ESP32, A4 на Uno)
SCL → SCL (GPIO 22 на ESP32, A5 на Uno)Код:
// DimmerLink — яркость 0–100 % по I2C
// Работает на любой платформе, без ISR, без IRAM_ATTR
// Документация: https://www.rbdimmer.com/docs/dimmerlink-I2CCommunication
#include <Wire.h>
#define DIMMER_ADDR 0x50
#define REG_LEVEL 0x10
void setLevel(uint8_t level) {
Wire.beginTransmission(DIMMER_ADDR);
Wire.write(REG_LEVEL);
Wire.write(level);
Wire.endTransmission();
}
void setup() {
Wire.begin();
setLevel(50); // 50 % яркости
}Таблица быстрого выбора
| Типичный сценарий | Нагрузка | Питание | IRAM_ATTR | Модуль | Библиотека |
|---|---|---|---|---|---|
| Настольная лампа | Лампа накаливания 100 Вт | 0,45 А | Arduino Uno | 4 А | Arduino Uno/Mega |
| Комнатный свет | Лампа накаливания 200 Вт | 0,9 А | ❌ нет | 4 А | ESP32 двухъядерный |
| Обогреватель | Резистивный 800 Вт | 3,6 А | ❌ нет | 8 А | ESP32 двухъядерный |
| Тёплый пол | Резистивный 1,5 кВт | 6,8 А | ❌ нет | 8 А + радиатор | ESP32 двухъядерный |
| Мощный нагреватель | Резистивный 2 кВт | 9 А | ❌ нет | 16 А | rbdimmerThermalESP32 |
| Промышленный бойлер | Резистивный 5 кВт | 22 А | ❌ нет | 40 А | rbdimmerThermalESP32 |
| Управление вентилятором | Асинхронный двигатель | — | ❌ нет | 8 А + снаббер | ESP32 двухъядерный |
| Умный дом | Любая | — | ESP32-C3 (HA) | Любой ESP32 | I2C |
| — (без ISR) | Любая | — | RPi | Любой ESP32 | I2C |
| Многозонный нагрев | 2 нагрузки | — | ❌ нет | 2CH 8A | ESP32 двухъядерный |
| Многоканальный | 4 нагрузки | ≤10 А кажд. | ❌ нет | 4CH 10A | ESP32 двухъядерный |
² «8 А + радиатор»: для нагрузок выше 200 Вт на стандартных модулях установите радиатор TO-220 с изолирующей прокладкой — корпус TRIAC находится под сетевым напряжением.
Чек-лист подключения
Перед включением проверьте:
Безопасность прежде всего:
Силовая проводка:
алюминий S (мм²) = I / 5
Справка по сечению проводов:
| Диммер | Медь мин. | Алюминий мин. |
|---|---|---|
| 4 А | 0,5 мм² | 0,8 мм² |
| 8 А | 1,0 мм² | 1,6 мм² |
| 10 А | 1,5 мм² | 2,0 мм² |
| 16 А | 2,5 мм² | 4,0 мм² |
| 24 А | 3,0 мм² | 5,0 мм² |
| 40 А | 5,0 мм² | 8,0 мм² |
Логическая проводка:
Следующие шаги
Теперь, когда вы выбрали модуль:
- Wiring diagram → Hardware Connection Guide
- Library setup → Universal Library for ESP32
- DimmerLink setup → DimmerLink Quick Start
Связанные статьи
- AC dimmer is not PWM → How Phase-Cut Dimming Works
- Zero-cross not detected → Zero-Cross Not Detected: AC Dimmer Doesn't Respond
- ESP32 crashes with WiFi → ESP32 + AC Dimmer: IRAM_ATTR Causes and Fix
- TRIAC overheating → TRIAC Overheating: AC Dimmer Runs Hot or Burns Out
- LED compatibility → LED Lamps with AC Dimmer: Compatibility Guide
Остались вопросы?
Ask on forum.rbdimmer.com or open a GitHub Issue.