Cuprins:

Dimmer LED PWM de 12V cu ESP8266: 3 pași
Dimmer LED PWM de 12V cu ESP8266: 3 pași

Video: Dimmer LED PWM de 12V cu ESP8266: 3 pași

Video: Dimmer LED PWM de 12V cu ESP8266: 3 pași
Video: ESP8266 PWM LED Dimmer - 12v Solar Shed 2024, Iulie
Anonim
12V LED PWM Dimmer cu ESP8266
12V LED PWM Dimmer cu ESP8266

În timp ce încercam să-mi fac gospodăria mai durabilă, schimbam becuri cu halogen pentru lumini led. Există o mulțime de alternative disponibile, pentru a înlocui orice tip de bec. În timp ce făceam acest lucru, am întâmpinat următoarea problemă: aveam un corp de iluminat care folosea 7 becuri cu halogen de 12 volți, fiecare de 10 wați. Această lumină a fost controlată de un dimmer, care a funcționat bine. Când am schimbat becurile cu lumini LED de 12 volți, fiecare 1 Watt, regulatorul de lumină a funcționat prost: lumina pâlpâia, iar estomparea oarecum neregulată. Aceasta este o problemă cu o mulțime de variatoare clasice: acestea au o putere minimă de care au nevoie pentru a funcționa.

Așadar, pe baza sistemului meu de domotică, am decis să schimb acest dimmer manual cu unul nou, care ar avea avantajul suplimentar de a putea fi controlat de la distanță. Am construit deja un dimmer folosind un MOSFET cu canal N (IRF540), care este perfect pentru acest tip de lucruri: poate fi controlat de un semnal PWM și este practic indestructibil, cu puteri maxime de 100 volți și 33 Amperi, suficient de amplu pentru acest scop (verificare rapidă: 7 x 1 watt = 7 wați, împărțit la 12 volți oferă un curent maxim de aproximativ.58 amperi). Vreau să folosesc acest dimmer pentru un alt corp de iluminat care are 12 becuri, fiecare de 2 wați, care oferă un maxim de 2 Amperi, astfel încât este, de asemenea, suficient. Singurul lucru pe care trebuie să îl urmăriți este frecvența semnalului PWM, dar valorile obișnuite pentru Arduino sau ESP8266 (500 Hz sau 1 kHz) nu reprezintă o problemă.

Pasul 1: Pasul 1: componentele

Pasul 1: componentele
Pasul 1: componentele
  1. Driver LED (convertor de 230 volți AC la 12 volți DC) În scopul meu, vreau să folosesc maximum 24 de wați, așa că am început cu un driver LED de 12 volți și 2 amperi. Am găsit unul la un site de distribuție chinez. Acest driver a fost evaluat la 12 volți, 28 de wați, deci a fost suficient să conducă dispozitivul singur. Pentru propria dvs. situație, puteți utiliza o versiune mai ușoară sau mai grea, în funcție de dispozitivul dvs.
  2. MOSFET n-canal IRF540
  3. Adafruit Huzzah ESP8266 Breakout Pentru că am vrut să folosesc WiFi și ador produsele Adafruit, am ales această placă: îmi oferă un ESP8266 cu un pinout de programare convenabil, un regulator de putere la bord și un factor de formă elegant. Este un pic excesiv pentru acest proiect, dar facilitează mult testarea și depanarea.
  4. Convertor DC-DC bazat pe LM2596 Pentru a obține puterea pentru placa ESP de la 12 volți, am avut nevoie de un regulator; acești convertoare mici sunt foarte eficiente și foarte ieftine.
  5. Codificator rotativ cu funcție de buton, cu lumină LED încorporată:

    www.sparkfun.com/products/10596

    Orice codor rotativ ar face, dar mi-a plăcut caracteristica adăugată drăguță a unui LED încorporat.

  6. Buton din plastic transparent

    www.sparkfun.com/products/10597

  7. Rezistor 4k7
  8. Rezistor 1k

Pasul 2: Pasul 2: circuitul

Pasul 2: Circuitul
Pasul 2: Circuitul

Acesta este circuitul pe care l-am folosit: am folosit pinii 4 și 5 ca intrări pentru codificatorul rotativ și pinul 0 pentru buton. Pinul 0 este, de asemenea, conectat la ledul roșu integrat, așa că aș putea verifica funcția butonului de pe cod, urmărind acest led.

Pinul 16 este utilizat pentru ieșirea PWM și l-am conectat direct la ledul verde de pe codificatorul Sparkfun. ESP8266 are 3, 3 volți și, chiar și cu 100%, am măsurat doar ieșirea de 2, 9 volți, așa că l-am conectat direct fără un rezistor de serie. Aceeași ieșire merge la Poarta MOSFET-ului cu canal n, prin intermediul unui rezistor de 1kOhm. Această Poartă este trasă la 12 volți la un voltaj de 4,7 kOhm.

Am folosit convertorul DC-DC pentru a converti cei 12 volți la 5,5 volți, acesta este conectat la intrarea V + a breakout-ului Adafruit. Aș fi putut folosi 3,3 volți și să-l conectez direct, dar acest lucru este puțin mai sigur.

Lampa LED de 12 V din circuit este dispozitivul meu.

Pasul 3: Pasul 3: Codul

Pasul 3: Codul
Pasul 3: Codul

Am pus codul pe GitHub:

Schiță pentru dimmer ESP8266 LED PWM

Se bazează pe o idee care poate fi instruită:

www.instructables.com/id/Arduino-PWM-LED-D…

Dar acesta a fost un control pur local, așa că am adăugat propria mea soluție de domotică bazată pe MQTT. Practic face același lucru, dar principalele diferențe sunt:

  • numărul implicit de pași PWM cu un Arduino este 255, cu ESP8266 este 1023 (așa cum am aflat mai târziu, întreaga încercare de a afla de ce dispozitivul meu LED nu a crescut până la 100% luminozitate …)
  • Nu am folosit circuitul „Totempole” cu cele 2 tranzistoare, deoarece PWM era oricum DC și a funcționat bine cu IRF 540.
  • Nu am folosit rezistențele de tracțiune de 10k pentru codificator, am avut încredere în pullup-urile încorporate ale ESP8266.
  • ESP8266 folosește o logică de 3,3 volți în loc de 5 volți pentru Arduino, ceea ce nu s-a dovedit a fi o problemă pentru IRF540

Software-ul are următoarele caracteristici:

  • rotirea codificatorului va reduce lumina în sus (CW) sau în jos (CCW), de la 0 până la 100%, în 1023 de pași, cu o anumită viteză la nivelurile inferioare.
  • apăsarea butonului va aprinde lumina când este stinsă, utilizând ultimul nivel de luminozitate salvat sau o va stinge când este aprinsă.
  • apăsând butonul pentru o perioadă mai lungă de timp în timp ce lumina este aprinsă, se va salva luminozitatea curentă ca nivel implicit.
  • apăsarea butonului mai mult timp în timp ce lumina este stinsă va aprinde lumina la 100% luminozitate, fără a modifica nivelul implicit.
  • Se va conecta la setările WiFi definite de șirurile „SECRET_SSID” și „SECRET_PASS”, care sunt salvate într-un fișier separat din schița mea, numit „secrets.h”
  • Se va conecta la un server MQTT din rețeaua WiFi, utilizând șirurile „MQTTSERVER” și „MQTTPORT” din același fișier.
  • Puteți utiliza subiectul de intrare MQTT „domus / esp / in” pentru a emite comenzi: „PORNIT” sau „OPRIT” pentru a porni sau opri lumina sau o valoare de la 0 la 1023 pentru a modifica luminozitatea.
  • Acesta va raporta starea subiectelor MQTT „domus / esp / uit” (starea ON sau OFF) și „domus / esp / uit / brightness” (valoarea luminozității).

Recomandat: