Passa al contenuto

Indice | Avanti: Avvio rapido →

DimmerLink — Documentazione utente

Controller dimmer AC per il controllo della luminosità delle lampade tramite TRIAC. Si collega al tuo progetto (Arduino, ESP32, Raspberry Pi, ecc.) e permette di controllare i dimmer AC con comandi semplici.

diagram

Lavorare con DimmerLink è semplice.




Indice

Sezione Descrizione
Avvio rapido Inizia qui — esempio minimo in 5 minuti
Collegamento hardware Schemi di cablaggio per le schede più comuni
Interfaccia UART Comandi ed esempi per UART
Interfaccia I2C Registri ed esempi per I2C
Computer a scheda singola Raspberry Pi, Orange Pi, Banana Pi
Uso avanzato USB-UART, LoRa, GSM, Bluetooth
FAQ e risoluzione dei problemi Domande frequenti e soluzioni

DimmerLink




Caratteristiche principali

SENZA SFARFALLIO — Un Cortex-M+ dedicato gestisce tutti i tempi critici. Nessun ritardo software, conflitto di interrupt o sfarfallio.

NESSUNA LIBRERIA RICHIESTA — Invia semplici comandi di 3–4 byte via UART o I2C. Funziona con qualsiasi linguaggio di programmazione. Letteralmente 5 righe di codice.

COMPATIBILITÀ UNIVERSALE — Arduino, ESP32, ESP8266, Raspberry Pi, STM32, qualsiasi MCU con UART/I2C. Supporta livelli logici 1.8V, 3.3V e 5V.

CONTROLLO LUMINOSITÀ — Intervallo 0–100%

CURVE DI DIMMERIZZAZIONE — Lineare, RMS (per lampade a incandescenza), Logaritmica. Rilevamento automatico della frequenza di rete 50/60 Hz.

RILEVAMENTO RETE — Rilevamento automatico della frequenza di rete (50/60 Hz)

DOPPIA INTERFACCIA — UART (115200 8N1) o I2C. Commutazione tramite comando in qualsiasi momento.

ULTRA-COMPACT — Only 18×12mm. Standard 0.1" pins. Fits in any enclosure.

PLUG & PLAY — Collega, alimenta, invia un comando. Dimmer funzionante in 5 minuti.




Il problema che risolviamo

Ogni maker conosce questo problema: aggiungi una libreria dimmer AC al tuo progetto e improvvisamente le lampade iniziano a sfarfallare, i tempi impazziscono e passi ore a fare il debug di conflitti di interrupt. DimmerLink elimina completamente questo problema scaricando tutte le operazioni critiche in termini di tempo su un microcontrollore Cortex-M+ dedicato.



Come funziona

Collega DimmerLink tra il tuo controller (Arduino, ESP32, Raspberry Pi o qualsiasi MCU) e un modulo dimmer AC. Invia un comando di 3 byte come SET 50% via UART o scrivi un valore in un registro I2C. Il controller gestisce il rilevamento passaggio per lo zero, calcola l'angolo di fase e controlla il TRIAC con precisione al microsecondo. Nessuna libreria. Nessun interrupt. Nessun conflitto con il tuo codice.

Oppure collegati a moduli di trasmissione remota come LoRa, GSM/GPRS, Bluetooth o bridge WiFi, o semplicemente al tuo PC tramite moduli USB-UART come CH340, CP2102/CP2104. Moduli RS-232 industriali. Nessun codice necessario, solo comandi via terminale.




Quale interfaccia scegliere?

Criterio UART I2C
Semplicità di connessione 2 fili + alimentazione 2 fili + alimentazione
Velocità 115200 baud 100 kHz
Dispositivi multipli No Sì (indirizzi diversi)
Funziona con bridge Sì (USB-UART, WiFi, LoRa) Limitato
Raccomandazione Per il controllo remoto Per il controllo locale

💡 Suggerimento: Raccomandiamo I2C per i principianti — codice più semplice, struttura più chiara.




Compatibilità

DimmerLink supporta livelli logici 1.8V, 3.3V e 5V — connessione diretta senza convertitori di livello!

Piattaforma UART I2C Livello logico
Arduino Uno/Nano 5V ✓
Arduino Mega 5V ✓
ESP8266 3.3V ✓
ESP32 3.3V ✓
STM32 (Blue Pill) 3.3V ✓
Raspberry Pi Pico 3.3V ✓
Raspberry Pi 3/4/5 3.3V ✓
Orange Pi 3.3V ✓
Banana Pi 3.3V ✓
ATtiny, nRF52, MSP430 1.8V ✓

Questa è solo una lista di base — DimmerLink funziona con qualsiasi microcontrollore dotato di UART o I2C!




Esempio rapido

Arduino + I2C — impostare la luminosità al 50%:

cpp
#include 

void setup() {
    Wire.begin();

    // Set brightness to 50%
    Wire.beginTransmission(0x50);
    Wire.write(0x10);  // Brightness register
    Wire.write(50);    // 50%
    Wire.endTransmission();
}

void loop() {}

Python + UART:

python
import serial

ser = serial.Serial('/dev/ttyUSB0', 115200)
ser.write(bytes([0x02, 0x53, 0x00, 50]))  # SET dimmer 0 to 50%
response = ser.read(1)
print("OK" if response[0] == 0 else "Error")

Esempio con terminale seriale:

python
1. Port → select your COM port
2. Baud: 115200
3. Send → "Send Numbers" tab
4. Enter: 02 53 00 32 or 0x02 0x53 0x00 0x32 (HEX 32 is 50 in decimal)
5. Click "Send Numbers"



Esempi di codice

Gli esempi pronti all'uso si trovano nella cartella examples/ :

python
examples/
├── arduino/
│   ├── uart_basic.ino
│   └── i2c_basic.ino
├── python/
│   ├── uart_example.py
│   └── i2c_example.py
└── micropython/
    ├── uart_example.py
    └── i2c_example.py



Supporto


Documentation Version: 1.0
Date: 2026-01

Indice | Avanti: Avvio rapido →