DMXasLED è una libreria progettata per controllare luci e dispositivi DMX tramite microcontrollori ESP32. Semplifica la gestione di sistemi di illuminazione professionale utilizzando il protocollo DMX.
- ✅ Supporto completo per ESP32 tramite DMX.
- 🎨 Gestione colori RGB, RGBW e dimmer.
- 📂 Salvataggio e caricamento di profili tramite SPIFFS (in fase di realizzazione).
- 🛠️ Comunicazione seriale per monitoraggio e debugging (in fase di realizzazione).
- Scarica o clona questo repository.
- Copia la cartella
DMXasLED
nella directorylibraries
del tuo ambiente Arduino:- Windows:
Documents\Arduino\libraries
- macOS/Linux:
~/Arduino/libraries
- Windows:
- Riavvia Arduino IDE per caricare la libreria.
- Apri Arduino IDE.
- Vai su Sketch > Include Library > Manage Libraries....
- Cerca "DMXasLED" e clicca su Install.
Inizializza la libreria DMX sulla porta specificata.
-
Parametri:
dmx_port
: Porta DMX su cui si avvia la comunicazione (es.DMX_PORT
).dmx_config
: Configurazione DMX da utilizzare (usa il valore predefinito se non specificato).
-
Esempio:
DMXasLED dmx(TX_PIN, RX_PIN, EN_PIN); // Crea un'istanza di DMXasLED dmx.begin(DMX_PORT); // Inizializza il DMX sulla porta specificata
Aggiunge un profilo luce al sistema DMX, specificando i canali da utilizzare.
-
Parametri:
LightProfile
: Struttura contenente la mappatura dell'indirizzo DMX e dei canali corrispondenti.
-
Esempio:
DMXLightMapping lightProfile = {0, 1, 2, 3, 4}; // Canali: Dimmer, R, G, B, W dmx.attachLight(lightProfile); // Associa il profilo al DMX
Imposta il colore di accensione predefinito per tutte le luci gestite dal sistema DMX.
-
Parametri:
R
,G
,B
,W
: Valori dei canali colore (0-255).Dimmer
: Intensità luminosa complessiva (0-255).
-
Esempio:
dmx.attachDefColor(255, 127, 50, 0, 255); // Rosso acceso, Verde medio, Blu minimo
Scrive i valori RGBW e Dimmer per una luce all'indirizzo DMX specificato.
-
Parametri:
lightAddr
: Indirizzo DMX della luce.R
,G
,B
,W
: Componenti colore (0-255).Dimmer
: Intensità luminosa complessiva (default 255).
-
Esempio:
dmx.digitalDmxWrite(1, 255, 0, 0, 0, 255); // Luce rossa accesa al massimo
Scrive i valori RGBW e Dimmer per una luce utilizzando un profilo di luce predefinito.
-
Parametri:
profileAddr
: Indirizzo DMX del profilo luce.R
,G
,B
,W
: Componenti colore (0-255).Dimmer
: Intensità luminosa complessiva (default 255).
-
Esempio:
dmx.digitalDmxWriteP(profileIndex, 0, 255, 0, 0, 255); // Luce verde accesa al massimo
Invia i dati DMX aggiornati a tutte le luci e dispositivi configurati. Deve essere chiamato periodicamente per mantenere sincronizzati gli stati.
- Esempio:
dmx.update(); // Aggiorna tutti i dati DMX
Restituisce il numero di profili caricati nel sistema. Utile per gestire dinamicamente i profili.
- Esempio:
unsigned int profileCount = dmx.getProfilesCount(); Serial.print("Numero di profili: "); Serial.println(profileCount);
1. BlinkDMX
- Esempio base per accendere e spegnere una luce DMX.
- Configura un indirizzo DMX e invia comandi ON/OFF.
- Ideale per principianti.
2. BlinkDMX2
- Utilizza profili DMX per gestire luci RGBW.
- Cambia i colori (Rosso, Verde, Blu, Bianco) in sequenza.
- Perfetto per chi necessita di configurazioni modulari.
3. PresepeDMX
- Esempio complesso con effetti dinamici.
- Simula transizioni tra alba, giorno, tramonto e notte.
- Include tremolio del fuoco e flash casuali di una luce "stella".
- Versione attuale: 1.0.0
- Changelog:
- 1.0.0: Rilascio iniziale con supporto per profili DMX, controllo RGBW e gestione di transizioni.
- 📂 Supporto SPIFFS: Implementazione completa per salvataggio e caricamento di profili.
- 🛠️ Debugging seriale avanzato: Miglioramento della comunicazione seriale per monitoraggio in tempo reale.
- 💻 Software di gestione profili: Prossimamente, sarà disponibile un software per Windows che, insieme alla seriale, consentirà di:
- Caricare nuovi profili direttamente da PC.
- Modificare i profili esistenti in modo semplice e rapido.
- Autore: Alessio Savelli
💡 Se hai domande o suggerimenti, sentiti libero di aprire una issue o inviare una pull request.
📜 Distribuito sotto la licenza MIT. Vedi il file LICENSE
per i dettagli.