In breve: Tre domande determinano la tua scelta: (1) tipo di carico — resistivo (riscaldatore, incandescenza) o induttivo (motore); (2) potenza del carico in watt → calcola gli ampere → scegli una classificazione con margine di sicurezza ×1,3; (3) piattaforma — ESP32 dual-core usa
rbdimmerESP32, Arduino usaRBDdimmer, ESP32 single-core o Raspberry Pi usano DimmerLink. La tabella di selezione rapida è in fondo a questo articolo.
Come usare questa guida
Segui i passaggi in ordine. Ogni passaggio restringe la scelta:
- 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 Tabella di selezione rapida.
Passo 1: Il tuo carico è compatibile?
I dimmer AC TRIAC funzionano tagliando parte dell'onda sinusoidale (controllo di fase). Non tutti i carichi rispondono bene a questo.
✅ Pienamente compatibili — carichi resistivi
Sono i carichi ideali. La corrente segue la tensione in fase, quindi la commutazione del TRIAC è pulita:
- Lampadine a incandescenza (qualsiasi potenza)
- Lampadine alogene (direttamente dalla rete o con trasformatore — vedi note sotto)
- Elementi riscaldanti e termoconvettori
- Scaldabagni elettrici, bollitori, ferri da stiro, tostapane
- Radiatori ad olio e tappetini riscaldanti a pavimento
- Qualsiasi dispositivo di riscaldamento puramente resistivo
⚠️ Compatibili con condizioni
| Carico | Condizione |
|---|---|
| Lampadine LED dimmerabili | Deve essere etichettata «dimmable»; possibile sfarfallio a livelli bassi |
| Ventilatori con motore a induzione | Snubber RC richiesto; dimmerizzazione min. ~40–50 % |
| Pompe centrifughe (induttive) | Snubber RC richiesto; dimmerizzazione min. ~60–70 % |
| Trasformatori (alogeno 12 V) | Snubber RC raccomandato; corrente reattiva |
| Termoventilatori | Min. 40–50 %; il ventilatore raffredda l'elemento — l'arresto causa surriscaldamento |
| Pompe ad acqua | Snubber RC richiesto |
⚠️ I carichi induttivi necessitano di uno snubber. Motori e trasformatori causano picchi dv/dt quando il TRIAC si spegne — questo riduce la vita del TRIAC e può causare falsi trigger. Aggiungi uno snubber RC (R = 68–100 Ω, C = 47–100 nF classe X2 400 V) in parallelo al TRIAC. I moduli rbdimmer hanno già uno snubber RC integrato.
❌ Non compatibili
| Carico | Motivo |
|---|---|
| Lampadine LED non dimmerabili | Sfarfallio, surriscaldamento, guasto prematuro |
| Strisce LED con SMPS | Alimentatore switching incompatibile con il controllo di fase |
| Lampadine CFL | Il ballast elettronico è in conflitto con il controllo di fase |
| Alimentatori elettronici | Rischio di danneggiamento |
| Stabilizzatori elettronici | Conflitto con il funzionamento del dimmer |
ℹ️ Le strisce LED (12 V / 24 V) usano un alimentatore switching (SMPS) — non sono la stessa cosa delle lampadine LED dimmerabili. I carichi SMPS non sono compatibili con la dimmerizzazione con taglio di fase. Per dimmerare le strisce LED usa un controller PWM DC, non un dimmer AC TRIAC.
Passo 2: Calcolare la corrente e scegliere la classificazione
Le classificazioni dei dimmer sono in ampere (A). La maggior parte dei carichi specifica la potenza in watt (W), quindi converti prima.
Formula
I = P / U
Per rete 220/230 V: I = P / 220
Per rete 110/120 V: I = P / 110Margine di sicurezza
Sovradimensiona sempre il dimmer con un fattore di sicurezza:
| Tipo di carico | Fattore di sicurezza | Motivo |
|---|---|---|
| Resistivo (riscaldatore, lampadina) | × 1,3 | Corrente di spunto e margine di invecchiamento |
| Induttivo (motore, trasformatore) | × 1,5 | Sovraccarico corrente reattiva |
| Elevata corrente di spunto (riscaldatore freddo, boiler) | × 1,7 | Picco di avviamento a freddo |
Regola di selezione: I_dimmer ≥ I_carico × fattore_di_sicurezza
Esempio di calcolo
Esempio: Stufetta da 800 W a 220 V
- I = 800 / 220 = 3,6 A
- Margine di sicurezza (resistivo): 3,6 × 1,3 = 4,7 A
- Scegli un dimmer da 8 A (taglia successiva rispetto a 4,7 A) ✅
Tabella di riferimento carico → dimmer
| Potenza di carico | Corrente a 220 V | Corrente a 110 V | Dimmer min. |
|---|---|---|---|
| Fino a 200 W | < 1 A | < 2 A | 4 A |
| 200–500 W | 1–2,3 A | 2–4,5 A | 4 A |
| 500 W–1 kW | 2,3–4,5 A | 4,5–9 A | 8 A |
| 1–1,5 kW | 4,5–7 A | — | 8 A + dissipatore |
| 1,5–2,5 kW | 7–11 A | — | 16 A |
| 2,5–4,5 kW | 11–20 A | — | 24 A |
| 4,5–7 kW | 20–32 A | — | 40 A |
Valori calcolati con fattore di sicurezza ×1,3 per carichi resistivi a 220 V.
Potenza massima per tensione (riferimento rapido)
| Dimmer | Max a 110 V ¹ | Max a 220/230 V |
|---|---|---|
| 4 A | 350 W | 660 W |
| 8 A | 700 W | 1 300 W |
| 10 A (4CH) | 850 W/can. | 1 700 W/can. |
| 16 A | 1 300 W | 2 600 W |
| 24 A | 2 000 W | 4 000 W |
| 40 A | 3 400 W | 6 400 W |
¹ Per rete a 127 V moltiplica i valori a 110 V per 1,15 (es. 4 A → 400 W, 8 A → 800 W).
Passo 3: Piattaforma e libreria
Il microcontrollore e lo stack software determinano quale libreria serve e come collegare il pin ZC.
| Piattaforma | Libreria | Vincolo pin ZC | Note |
|---|---|---|---|
| Arduino Uno / Nano | RBDdimmer |
Solo pin 2 o 3 | ATmega: 2 pin di interrupt |
| Arduino Mega | RBDdimmer |
Pin 2, 3, 18–21 | 6 pin con interrupt |
| ESP32 (orig., S3) | rbdimmerESP32 |
Qualsiasi GPIO | Dual-core; IRAM_ATTR automatico |
| ESP32 + 16/24/40 A | rbdimmerThermalESP32 |
Qualsiasi GPIO | NTC + controllo ventilatore |
| ESP32-S2/C3/H2/C6 | DimmerLink | — | Single-core, ISR non affidabile |
| ESP8266 | RBDdimmer |
Qualsiasi GPIO tranne GPIO 16 | Il WiFi può causare jitter |
| Raspberry Pi | DimmerLink | — | Nessun SO real-time per ISR |
| STM32 | RBDdimmer |
Qualsiasi GPIO con interrupt | |
| ESPHome / Tasmota | DimmerLink | — | Componente I2C |
| Home Assistant | DimmerLink | — | Tramite ESPHome o bridge 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
Livello logico VCC
| Piattaforma | VCC richiesto |
|---|---|
| Arduino Uno/Nano/Mega (ATmega) | 5 V |
| ESP32 | 3,3V |
| ESP8266 | 3,3V |
| STM32 | 3,3V |
Non collegare VCC a 12 V anche se il progetto usa linee a 12 V — questo danneggerà il dimmer e il tuo MCU.
Passo 4: Quanti canali?
| Modulo | Canali | Note |
|---|---|---|
| 1CH 4A | 1 | Un carico, il più compatto |
| 1CH 8A | 1 | Un carico, potenza maggiore |
| 2CH 8A | 2 | Due carichi indipendenti, ZC condiviso |
| 4CH 10A | 4 | Fino a quattro carichi, ZC condiviso, 10 A ciascuno |
Tutti i moduli multicanale condividono un segnale di passaggio per lo zero — un solo pin di interrupt gestisce tutti i canali. Ogni pin DIM è separato.
Passo 5: Modulo standard o ad alta potenza?
| Caratteristica | Standard (4 A, 8 A, 10 A) | Alta potenza (16 A, 24 A, 40 A) |
|---|---|---|
| TRIAC | TO-220 esposto | Coperto da dissipatore integrato |
| Raffreddamento attivo | Nessuno (aggiungere dissipatore esterno sopra 200 W) | Ventilatore 5 V integrato |
| Sensore di temperatura | No | Termistore NTC10 incluso |
| Libreria termica | — | rbdimmerThermalESP32 |
| Uso tipico | Lampade, piccoli riscaldatori | Riscaldamento industriale, boiler, forni |
| Dimensione scheda | Compatta | Ingombro maggiore |
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
Passo 6: Dovresti usare DimmerLink?
DimmerLink 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.
Cablaggio (identico per qualsiasi piattaforma):
DimmerLink → MCU
VCC → 3.3V (ESP32) / 5V (Arduino)
GND → GND
SDA → SDA (GPIO 21 su ESP32, A4 su Uno)
SCL → SCL (GPIO 22 su ESP32, A5 su Uno)Codice:
// DimmerLink — luminosità 0–100 % via I2C
// Funziona su qualsiasi piattaforma, senza ISR, senza IRAM_ATTR
// Documentazione: 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 % di luminosità
}Tabella di selezione rapida
| Caso d'uso tipico | Carico | Alimentazione | Piattaforma | Modulo | Libreria |
|---|---|---|---|---|---|
| Lampada da tavolo | Incandescenza 100 W | 0,45 A | Arduino Uno | 4 A | RBDdimmer |
| Luce ambiente | Incandescenza 200 W | 0,9 A | ESP32 | 4 A | rbdimmerESP32 |
| Stufetta | Resistivo 800 W | 3,6 A | ESP32 | 8 A | rbdimmerESP32 |
| Riscaldamento a pavimento | Resistivo 1,5 kW | 6,8 A | ESP32 | 8 A + dissipatore | rbdimmerESP32 |
| Riscaldatore potente | Resistivo 2 kW | 9 A | ESP32 | 16 A | rbdimmerThermalESP32 |
| Boiler industriale | Resistivo 5 kW | 22 A | ESP32 | 40 A | rbdimmerThermalESP32 |
| Velocità ventilatore | Motore a induzione | — | ESP32 | 8 A + snubber | rbdimmerESP32 |
| Casa intelligente | Qualsiasi | — | ESP32-C3 (HA) | DimmerLink | I2C |
| Raspberry Pi | Qualsiasi | — | RPi | DimmerLink | I2C |
| Riscaldamento multizona | 2 carichi | — | ESP32 | 2CH 8A | rbdimmerESP32 |
| Multicanale | 4 carichi | ≤10 A ciascuno | ESP32 | 4CH 10A | rbdimmerESP32 |
² «8 A + dissipatore»: per carichi superiori a 200 W su moduli standard, fissa un dissipatore TO-220 con pad isolante — il case del TRIAC è al potenziale di rete.
Checklist di cablaggio
Prima di accendere, verifica:
La sicurezza prima di tutto:
Cablaggio di potenza:
alluminio S (mm²) = I / 5
Riferimento sezioni cavo:
| Dimmer | Rame min. | Alluminio min. |
|---|---|---|
| 4 A | 0,5 mm² | 0,8 mm² |
| 8 A | 1,0 mm² | 1,6 mm² |
| 10 A | 1,5 mm² | 2,0 mm² |
| 16 A | 2,5 mm² | 4,0 mm² |
| 24 A | 3,0 mm² | 5,0 mm² |
| 40 A | 5,0 mm² | 8,0 mm² |
Cablaggio logico:
Passi successivi
Ora che hai scelto il tuo modulo:
- Wiring diagram → Hardware Connection Guide
- Library setup → Universal Library for ESP32
- DimmerLink setup → DimmerLink Quick Start
Articoli correlati
- 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
Hai ancora domande?
Ask on forum.rbdimmer.com or open a GitHub Issue.