Sommario:
- Passaggio 1: Passaggio 1: i componenti
- Fase 2: Fase 2: il circuito
- Passaggio 3: Passaggio 3: il codice
Video: Dimmer LED PWM 12V con ESP8266: 3 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:03
Mentre cercavo di rendere la mia casa più sostenibile, scambiavo lampadine alogene con luci a led. Le alternative disponibili sono tantissime, per sostituire qualsiasi tipo di lampadina. Mentre facevo questo, mi sono imbattuto nel seguente problema: avevo una lampada che utilizzava 7 lampadine alogene da 12 volt, ciascuna da 10 Watt. Questa luce era controllata da un dimmer, che funzionava bene. Quando ho sostituito le lampadine con luci a led da 12 volt, ciascuna da 1 Watt, il dimmer ha funzionato male: la luce tremolava e l'attenuazione era alquanto irregolare. Questo è un problema con molti dimmer classici: hanno una potenza minima, di cui hanno bisogno per funzionare.
Quindi, in base al mio impianto domotico, ho deciso di sostituire questo dimmer manuale con uno nuovo, che avrebbe il vantaggio in più di poter essere comandato da remoto. Avevo già costruito un dimmer utilizzando un MOSFET a canale N (IRF540), che è perfetto per questo genere di cose: può essere controllato da un segnale PWM, ed è praticamente indistruttibile, con valori massimi di 100 Volt e 33 Ampere, sufficientemente ampia per questo scopo (verifica rapida: 7 x 1 Watt = 7 Watt, diviso per 12 volt fornisce una corrente massima di circa 0,58 Ampere). Voglio usare questo dimmer per un altro apparecchio che ha 12 lampadine, ciascuna da 2 watt, che fornisce un massimo di 2 Ampere, quindi anche questo è sufficiente. L'unica cosa a cui prestare attenzione è la frequenza del segnale PWM, ma i soliti valori per Arduino o ESP8266 (500 Hz o 1kHz) non sono un problema.
Passaggio 1: Passaggio 1: i componenti
- Driver LED (convertitore da 230 volt CA a 12 volt CC) Per il mio scopo, voglio utilizzare un massimo di 24 Watt, quindi ho iniziato con un driver LED da 12 volt e 2 Ampere. Ne ho trovato uno in un sito di distributori cinesi. Questo driver è stato valutato 12 volt, 28 Watt, quindi era sufficiente per guidare l'apparecchio da solo. Per la tua situazione, potresti usare una versione più leggera o più pesante, a seconda del tuo dispositivo.
- MOSFET a canale n IRF540
- Adafruit Huzzah ESP8266 Breakout Poiché volevo usare il WiFi e adoro i prodotti Adafruit, ho scelto questa scheda: mi dà un ESP8266 con un comodo pinout di programmazione, un regolatore di potenza integrato e un fattore di forma elegante. È un po' eccessivo per questo progetto, ma rende i test e il debug molto più semplici.
- Convertitore DC-DC basato su LM2596 Per ricavare l'alimentazione per la scheda ESP dai 12 volt, avevo bisogno di un regolatore; questi piccoli convertitori sono molto efficienti e molto economici.
-
Encoder rotativo con funzione pulsante, con luce led incorporata:
www.sparkfun.com/products/10596
Qualsiasi encoder rotativo andrebbe bene, ma mi è piaciuta la bella caratteristica aggiunta di un LED integrato.
-
Pomello in plastica trasparente
www.sparkfun.com/products/10597
- Resistenza 4k7
- Resistenza 1k
Fase 2: Fase 2: il circuito
Questo è il circuito che ho usato: ho usato i pin 4 e 5 come ingressi per l'encoder rotativo e il pin 0 per il pulsante. Il pin 0 è collegato anche al led rosso di bordo, quindi ho potuto verificare la funzione del pulsante sull'encode guardando questo led.
Il pin 16 è utilizzato per l'uscita PWM e l'ho collegato direttamente al led verde sull'encoder Sparkfun. L'ESP8266 è a 3, 3 volt e, anche con il 100%, ho misurato solo un'uscita di 2, 9 volt, quindi l'ho collegato direttamente senza un resistore in serie. Questa stessa uscita va al gate del MOSFET a canale n, tramite un resistore da 1 kOhm. Questo gate viene portato a 12 volt da un resistore da 4,7 kOhm.
Ho usato il convertitore DC-DC per convertire i 12 volt in 5,5 volt, questo è collegato all'ingresso V+ del breakout Adafruit. Avrei potuto usare 3,3 volt e collegarlo direttamente, ma questo è un po' più sicuro.
La lampada a LED da 12 V nel circuito è il mio apparecchio.
Passaggio 3: Passaggio 3: il codice
Ho messo il codice su GitHub:
Schizzo per il dimmer LED PWM ESP8266
Si basa su un'idea un'altra istruibile:
www.instructables.com/id/Arduino-PWM-LED-D…
Ma questo era un controllo puramente locale, quindi ho aggiunto la mia soluzione domotica basata su MQTT. Fondamentalmente fa la stessa cosa, ma le differenze principali sono:
- il numero predefinito di passaggi PWM con un Arduino è 255, con ESP8266 è 1023 (come ho scoperto in seguito, cercando di capire perché il mio apparecchio a LED non è salito fino al 100% di luminosità…)
- Non ho usato il circuito "Totempole" con i 2 transistor, poiché il PWM era comunque DC e funzionava bene con l'IRF 540.
- Non ho usato i resistori di pull-up da 10k per l'encoder, mi sono fidato dei pullup integrati dell'ESP8266.
- L'ESP8266 utilizza la logica a 3,3 volt invece di 5 volt per l'Arduino, il che non si è rivelato un problema per l'IRF540
Il software ha le seguenti caratteristiche:
- ruotando l'encoder si attenuerà la luce in alto (CW) o in basso (CCW), da 0 fino al 100%, in 1023 passi, con qualche accelerazione nei livelli inferiori.
- premendo il pulsante si accenderà la luce quando è spenta, utilizzando l'ultimo livello di luminosità salvato, o la si spegnerà quando è accesa.
- premendo il pulsante più a lungo mentre la luce è accesa salverà la luminosità corrente come livello predefinito.
- premendo il pulsante più a lungo mentre la luce è spenta, la luce si accenderà al 100% di luminosità, senza modificare il livello predefinito.
- Si collegherà alle impostazioni WiFi definite dalle stringhe 'SECRET_SSID' e 'SECRET_PASS', che vengono salvate in un file separato nel mio sketch, chiamato 'secrets.h'
- Si collegherà a un server MQTT nella rete WiFi, utilizzando le stringhe "MQTTSERVER" e "MQTTPORT" nello stesso file.
- Puoi utilizzare l'argomento in entrata MQTT 'domus/esp/in' per impartire comandi: 'ON' o 'OFF' per accendere o spegnere la luce, o un valore da 0 a 1023 per cambiare la luminosità.
- Riporterà lo stato sugli argomenti MQTT 'domus/esp/uit' (stato ON o OFF) e 'domus/esp/uit/brightness' (il valore di luminosità).
Consigliato:
PWM con ESP32 - Dimming LED con PWM su ESP 32 con Arduino IDE: 6 passaggi
PWM con ESP32 | Dimming LED con PWM su ESP 32 con Arduino IDE: in questo tutorial vedremo come generare segnali PWM con ESP32 utilizzando Arduino IDE & Il PWM è fondamentalmente utilizzato per generare un'uscita analogica da qualsiasi MCU e quell'uscita analogica potrebbe essere qualsiasi cosa tra 0 V e 3,3 V (in caso di esp32) e amp; a partire dal
Interruttore luce + dimmer ventola in una scheda con ESP8266: 7 passaggi (con immagini)
Interruttore della luce + dimmer della ventola in una scheda con ESP8266: in questo tutorial imparerai come costruire il tuo interruttore della luce e il dimmer della ventola in una sola scheda con il microcontrollore e il modulo WiFi ESP8266. Questo è un ottimo progetto per IoT. :Questo circuito gestisce le tensioni principali AC, quindi fai attenzione
Regolatore di velocità della ventola WiFi (dimmer CA ESP8266): 8 passaggi (con immagini)
Regolatore di velocità della ventola WiFi (dimmer CA ESP8266): questa guida ti guiderà su come realizzare un regolatore di velocità della ventola da soffitto utilizzando il metodo di controllo dell'angolo di fase Triac. Triac è convenzionalmente controllato dal chip configurato arduino standalone Atmega8. Wemos D1 mini aggiunge funzionalità WiFi per questo regolato
Controllo della velocità e della luce del motore CC PWM - Dimmer DC: 7 passaggi
Controllo della velocità e della luce del motore CC PWM | DC Dimmer: oggi in questo video ti mostrerò come attenuare le luci, controllare la velocità di un motore in DC o corrente continua, quindi iniziamo
Dimmer LED con potenziometro: 5 passaggi (con immagini)
Dimmer LED con potenziometro: questo è un istruibile che ti insegna come utilizzare un potenziometro per attenuare un LED