Passa al contenuto

Which AC Dimmer Module to Choose: Complete Buyer's Guide

Not sure which AC dimmer to buy? Three questions decide it: what load are you controlling, how many watts, and which microcontroller. This guide walks you through current calculation, dimmer rating, library choice, and wiring in one place.

TL;DR: Three questions determine your choice: (1) load type — resistive (heater, incandescent) or inductive (motor); (2) load power in watts → calculate amps → pick a rating with a ×1.3 safety margin; (3) platform — ESP32 dual-core uses rbdimmerESP32, Arduino uses RBDdimmer, single-core ESP32 or Raspberry Pi use DimmerLink. The quick-selection table is at the bottom of this article.



How to Use This Guide

Work through the steps in order. Each step narrows your choice:

  1. Step 1: Is your load compatible?
  2. Step 2: Calculate current and choose a rating
  3. Step 3: Platform and library
  4. Step 4: How many channels?
  5. Step 5: Standard or high-power module?
  6. Step 6: Should you use DimmerLink?

Or jump to the Quick Selection Table.




Step 1: Is Your Load Compatible?

AC TRIAC dimmers work by cutting part of the sine wave (phase-cut control). Not all loads respond well to this.


✅ Fully compatible — resistive loads

These are ideal. Current follows voltage in phase, so TRIAC switching is clean:

  • Incandescent bulbs (any wattage)
  • Halogen bulbs (direct mains or with transformer — see notes below)
  • Heating elements and space heaters
  • Electric boilers, kettles, irons, toasters
  • Oil-filled radiators and underfloor heating mats
  • Any pure resistive heating device


⚠️ Compatible with conditions

Load Condition
Dimmable LED bulbs Must be labeled "dimmable"; may flicker at low levels
Split-phase fans (induction) RC snubber required; min. dimming ~40–50%
Centrifugal pumps (induction) RC snubber required; min. dimming ~60–70%
Transformers (halogen 12V) RC snubber recommended; reactive current
Fan heaters Min 40–50%; fan cools heater — stalling causes overheating
Water pumps RC snubber required

⚠️ Inductive loads need a snubber. Motors and transformers cause dv/dt spikes when the TRIAC turns off — these shorten TRIAC lifespan and can cause false triggering. Add an RC snubber (R = 68–100 Ω, C = 47–100 nF class X2 400V) in parallel with the TRIAC. rbdimmer modules already have a built-in RC snubber.


❌ Not compatible

Load Why
Non-dimmable LED bulbs Flicker, overheating, premature failure
LED strips with SMPS Switching PSU incompatible with phase-cut
CFL bulbs Electronic ballast conflicts with phase-cut
Electronic power supplies Risk of damage
Electronic stabilizers Conflict with dimmer operation

ℹ️ LED strips (12V/24V) use a switching power supply (SMPS) — they are not the same as dimmable LED bulbs. SMPS loads are not compatible with phase-cut dimming. For LED strip dimming use a PWM DC controller, not an AC TRIAC dimmer.




Step 2: Calculate Current and Choose a Rating

Dimmer ratings are in amperes (A). Most loads specify power in watts (W), so convert first.


Formula

text
I = P / U
For 220/230V mains:  I = P / 220
For 110/120V mains:  I = P / 110


Safety margin

Always uprate the dimmer by a safety factor:

Load type Safety factor Reason
Resistive (heater, bulb) × 1.3 Inrush and aging margin
Inductive (motor, transformer) × 1.5 Reactive current overhead
High inrush (cold heater, boiler) × 1.7 Cold-start surge

Selection rule: I_dimmer ≥ I_load × safety_factor


Worked example

Example: 800W space heater at 220V

  1. I = 800 / 220 = 3.6A
  2. Safety margin (resistive): 3.6 × 1.3 = 4.7A
  3. Choose an 8A dimmer (next size up from 4.7A) ✅


Load-to-dimmer reference table

Load power Current at 220V Current at 110V Min dimmer
Up to 200W < 1A < 2A 4A
200–500W 1–2.3A 2–4.5A 4A
500W–1kW 2.3–4.5A 4.5–9A 8A
1–1.5kW 4.5–7A 8A + heatsink
1.5–2.5kW 7–11A 16A
2.5–4.5kW 11–20A 24A
4.5–7kW 20–32A 40A

Values calculated with ×1.3 safety factor for resistive loads at 220V.


Maximum power by voltage (quick reference)

Dimmer Max at 110V ¹ Max at 220/230V
4A 350W 660W
8A 700W 1 300W
10A (4CH) 850W/ch 1 700W/ch
16A 1 300W 2 600W
24A 2 000W 4 000W
40A 3 400W 6 400W

¹ For 127V mains multiply the 110V values by 1.15 (e.g. 4A → 400W, 8A → 800W).




Step 3: Platform and Library

The microcontroller and software stack determine which library you need and how to wire the ZC pin.

Platform Library ZC pin constraint Notes
Arduino Uno / Nano RBDdimmer Pins 2 or 3 only ATmega: 2 INT pins
Arduino Mega RBDdimmer Pins 2, 3, 18–21 6 interrupt-capable pins
ESP32 (orig, S3) rbdimmerESP32 Any GPIO Dual-core; IRAM_ATTR auto
ESP32 + 16/24/40A rbdimmerThermalESP32 Any GPIO NTC + fan control
ESP32-S2/C3/H2/C6 DimmerLink Single-core, ISR not reliable
ESP8266 RBDdimmer Any GPIO except GPIO 16 WiFi may cause jitter
Raspberry Pi DimmerLink No real-time OS for ISR
STM32 RBDdimmer Any interrupt-capable GPIO
ESPHome / Tasmota DimmerLink I2C component
Home Assistant DimmerLink Via ESPHome or UART bridge

⚠️ Don't use RBDdimmer on ESP32. That library has no IRAM_ATTR on ISR handlers — it crashes when WiFi is active. Use rbdimmerESP32 on dual-core ESP32. See: Wrong Library: RBDdimmer vs rbdimmerESP32


VCC logic level

Platform Required VCC
Arduino Uno/Nano/Mega (ATmega) 5V
ESP32 3.3V
ESP8266 3.3V
STM32 3.3V

Do not connect VCC to 12V even if your project uses 12V rails — this will damage the dimmer and your MCU.




Step 4: How Many Channels?

Module Channels Notes
1CH 4A 1 One load, most compact
1CH 8A 1 One load, higher power
2CH 8A 2 Two independent loads, shared ZC
4CH 10A 4 Up to four loads, shared ZC, 10A each

All multi-channel modules share one zero-cross signal — one interrupt pin handles all channels. Each DIM pin is separate.




Step 5: Standard or High-Power Module?

Feature Standard (4A, 8A, 10A) High-Power (16A, 24A, 40A)
TRIAC Exposed TO-220 Covered by built-in heatsink
Active cooling None (add external heatsink above 200W) Built-in 5V fan
Temperature sensor No NTC10 thermistor included
Thermal library rbdimmerThermalESP32
Typical use Lamps, small heaters Industrial heating, boilers, kilns
Board size Compact Larger footprint

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




Step 6: Should You Use 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.

Wiring (same for any platform):

text
DimmerLink  →  MCU
VCC         →  3.3V (ESP32) / 5V (Arduino)
GND         →  GND
SDA         →  SDA (GPIO 21 on ESP32, A4 on Uno)
SCL         →  SCL (GPIO 22 on ESP32, A5 on Uno)

Code:

cpp
// DimmerLink — brightness 0–100% via I2C
// Works on any platform, no ISR, no IRAM_ATTR
// Docs: 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% brightness
}



Quick Selection Table

Typical use case Load Power Platform Module Library
Table lamp Incandescent 100W 0.45A Arduino Uno 4A RBDdimmer
Room light Incandescent 200W 0.9A ESP32 4A rbdimmerESP32
Space heater Resistive 800W 3.6A ESP32 8A rbdimmerESP32
Floor heating Resistive 1.5kW 6.8A ESP32 8A+heatsink rbdimmerESP32
High-power heater Resistive 2kW 9A ESP32 16A rbdimmerThermalESP32
Industrial boiler Resistive 5kW 22A ESP32 40A rbdimmerThermalESP32
Fan speed Induction motor any ESP32 8A + snubber rbdimmerESP32
Smart home Any any ESP32-C3 (HA) DimmerLink I2C
Raspberry Pi Any any RPi DimmerLink I2C
Multi-zone heating 2 loads any ESP32 2CH 8A rbdimmerESP32
Multi-channel 4 loads ≤10A each ESP32 4CH 10A rbdimmerESP32

² "8A+heatsink": for loads above 200W on standard modules, attach a TO-220 heatsink with an insulating pad — the TRIAC tab is at mains potential.




Wiring Checklist

Before powering up, verify:

Safety first:

  • ☐ Dimmer and all HV connections inside an insulated enclosure
  • ☐ Metal enclosure → connected to protective earth (ground)
  • ☐ Insulation rated ≥ 400V
  • ☐ Always work with device unplugged — never touch live contacts
  • Power wiring:

  • ☐ Wire gauge (for runs ≤3–5 m): Copper `S (mm²) = I / 8`;
  • Aluminum S (mm²) = I / 5

  • ☐ Fuse on AC L-IN before the dimmer: `I_fuse = I_load × 1.25`
  • ☐ Fuse on the live (L-IN) line, not the neutral
  • Wire gauge reference:

    Dimmer Copper min. Aluminum min.
    4A 0.5 mm² 0.8 mm²
    8A 1.0 mm² 1.6 mm²
    10A 1.5 mm² 2.0 mm²
    16A 2.5 mm² 4.0 mm²
    24A 3.0 mm² 5.0 mm²
    40A 5.0 mm² 8.0 mm²

    Logic wiring:

  • ☐ VCC: 3.3V for ESP32/ESP8266/STM32, 5V for ATmega Arduino
  • ☐ ZC → interrupt-capable pin (Arduino Uno: pin 2 or 3; ESP32: any GPIO)
  • ☐ DIM → any digital output
  • ☐ ZC and DIM wires routed away from AC power lines (noise coupling)



  • Next Steps

    Now that you've chosen your module:

    1. Wiring diagramHardware Connection Guide
    2. Library setupUniversal Library for ESP32
    3. DimmerLink setupDimmerLink Quick Start



    Related Articles



    Still have questions?

    Ask on forum.rbdimmer.com or open a GitHub Issue.

    Condividi articolo
    Accedi per lasciare un commento