Obsah:

12V LED stmievač PWM s krokmi ESP8266: 3
12V LED stmievač PWM s krokmi ESP8266: 3

Video: 12V LED stmievač PWM s krokmi ESP8266: 3

Video: 12V LED stmievač PWM s krokmi ESP8266: 3
Video: ESP32 Tutorial 3 - Resistor, LED, Bredboard and First Project: Hello LED -ESP32 IoT Learnig kit 2024, Júl
Anonim
12V LED PWM stmievač s ESP8266
12V LED PWM stmievač s ESP8266

Pri pokuse o väčšiu udržateľnosť svojej domácnosti som vymieňal halogénové žiarovky za LED svetlá. K dispozícii je množstvo alternatív, ktorými je možné vymeniť akýkoľvek typ žiarovky. Pri tom som narazil na nasledujúci problém: Mal som svietidlo, ktoré používalo 7 12 voltových halogénových žiaroviek, každá 10 wattov. Toto svetlo bolo ovládané stmievačom, ktorý fungoval dobre. Keď som vymenil žiarovky za 12 voltové led žiarovky, každý s výkonom 1 W, stmievač fungoval zle: svetlo blikalo a stmievanie bolo trochu nepravidelné. To je problém mnohých klasických stmievačov: majú minimálny výkon, ktorý potrebujú na to, aby fungovali.

Na základe svojho systému domotics som sa teda rozhodol vymeniť tento ručný stmievač za nový, ktorý bude mať ďalšiu výhodu v tom, že bude možné ho ovládať na diaľku. Už som postavil stmievač pomocou N-kanálového MOSFET (IRF540), ktorý je na tieto veci ideálny: dá sa ovládať signálom PWM a je prakticky nezničiteľný, s maximálnym výkonom 100 voltov a 33 ampérov, na tento účel dostatočne bohatá (rýchla kontrola: 7 x 1 W = 7 wattov, delená 12 voltmi dáva maximálny prúd asi 0,58 ampéra). Chcem použiť tento stmievač na iné svietidlo, ktoré má 12 žiaroviek, z ktorých každá má 2 watty, čo dáva maximálne 2 ampéry, takže to tiež stačí. Jediná vec, na ktorú si treba dávať pozor, je frekvencia signálu PWM, ale obvyklé hodnoty pre Arduino alebo ESP8266 (500 Hz alebo 1kHz) nie sú problémom.

Krok 1: Krok 1: Komponenty

Krok 1: Komponenty
Krok 1: Komponenty
  1. Ovládač LED (menič striedavého prúdu na 230 voltov striedavého prúdu na 12 voltov) Na svoj účel chcem použiť maximálne 24 wattov, a tak som začal s LED ovládačom s napätím 12 voltov a 2 ampéry. Našiel som jeden na webe čínskeho distribútora. Tento ovládač mal hodnotenie 12 voltov, 28 wattov, takže to stačilo na ovládanie zariadenia samostatne. V závislosti od zariadenia môžete vo svojej vlastnej situácii použiť ľahšiu alebo ťažšiu verziu.
  2. N-kanálový MOSFET IRF540
  3. Pretože som chcel používať WiFi a produkty Adafruit som úplne miloval, vybral som si túto dosku: dáva mi to ESP8266 s pohodlným programovacím pinoutom, integrovaným regulátorom výkonu a elegantným tvarom. Tento projekt je trochu prehnaný, ale testovanie a ladenie je oveľa jednoduchšie.
  4. Konvertor DC-DC na báze LM2596 Aby som mohol odvodiť výkon pre dosku ESP z 12 voltov, potreboval som regulátor; tieto malé prevodníky sú veľmi efektívne a veľmi lacné.
  5. Rotačný kodér s funkciou tlačidla, so vstavaným LED svetlom:

    www.sparkfun.com/products/10596

    Každý rotačný snímač by to urobil, ale páčila sa mi príjemná pridaná funkcia vstavanej LED diódy.

  6. Priehľadný plastový gombík

    www.sparkfun.com/products/10597

  7. Rezistor 4k7
  8. Rezistor 1k

Krok 2: Krok 2: Okruh

Krok 2: Okruh
Krok 2: Okruh

Toto je obvod, ktorý som použil: Použil som kolíky 4 a 5 ako vstupy pre rotačný snímač a kolík 0 pre tlačidlo. Pin 0 je tiež pripojený k palubnej červenej dióde, takže som mohol skontrolovať funkciu tlačidla na kódovaní sledovaním tejto diódy.

Na výstup PWM sa používa kolík 16 a ten som pripojil priamo k zelenej dióde kodéra Sparkfun. ESP8266 má 3, 3 volty a dokonca so 100%som nameral iba 2, 9 voltový výstup, takže som ho zapojil priamo bez sériového odporu. Ten istý výstup smeruje k bráne n-kanálového MOSFETu pomocou odporu 1 kOhm. Táto brána je vytiahnutá vysoko na 12 voltov odporom 4,7 kOhm.

Na konverziu 12 voltov na 5,5 voltov som použil prevodník DC-DC, ktorý je pripojený k vstupu V+ programu Adafruit breakout. Mohol som použiť 3,3 voltov a pripojiť ho priamo, ale toto je o niečo bezpečnejšie.

12 V LED lampa v obvode je moje svietidlo.

Krok 3: Krok 3: Kód

Krok 3: Kód
Krok 3: Kód

Vložil som kód na GitHub:

Náčrt pre stmievač LED PWM ESP8266

Je založená na myšlienke, ktorú je možné inštruovať inak:

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

Ale toto bolo čisto lokálne ovládanie, tak som pridal svoje vlastné domotické riešenie založené na MQTT. V zásade robí to isté, ale hlavné rozdiely sú:

  • predvolený počet krokov PWM s Arduinom je 255, s ESP8266 je 1023 (ako som neskôr zistil, celé sa snažím zistiť, prečo moje LED svietidlo nevyšlo až na 100% jas …)
  • S 2 tranzistormi som nepoužil obvod „Totempole“, pretože PWM bol aj tak DC a s IRF 540 fungoval dobre.
  • Na kodér som nepoužil 10k výsuvné odpory, dôveroval som vstavaným výsuvom ESP8266.
  • ESP8266 používa 3,3 voltovú logiku namiesto 5 voltov pre Arduino, čo pre IRF540 nepreukázalo žiadny problém

Softvér má nasledujúce funkcie:

  • otočením kodéra sa stlmí svetlo nahor (CW) alebo nadol (CCW) z 0 na 0%až na 100%v 1023 krokoch, pričom niektoré sa zrýchlia v nižších úrovniach.
  • stlačením tlačidla sa svetlo zapne, keď je vypnuté, pričom sa použije posledná uložená úroveň jasu, alebo sa vypne, keď je zapnuté.
  • dlhším stlačením tlačidla pri zapnutom svetle sa aktuálny jas uloží ako predvolená úroveň.
  • dlhším stlačením tlačidla pri vypnutom svetle zapnete svetlo na 100% jas bez zmeny predvolenej úrovne.
  • Pripojí sa k nastaveniam WiFi definovaným reťazcom „SECRET_SSID“a „SECRET_PASS“, ktoré sú v mojom náčrte uložené v samostatnom súbore s názvom „secrets.h“
  • Pripojí sa k serveru MQTT v sieti WiFi pomocou reťazcov „MQTTSERVER“a „MQTTPORT“v rovnakom súbore.
  • Prichádzajúcu tému MQTT „domus/esp/in“môžete použiť na zadávanie príkazov: „ZAPNUTÉ“alebo „VYPNUTÉ“na zapnutie alebo vypnutie svetla alebo hodnotu od 0 do 1023 na zmenu jasu.
  • Bude hlásiť stav k témam MQTT „domus/esp/uit“(stav ZAPNUTÉ alebo VYPNUTÉ) a „domus/esp/uit/jas“(hodnota jasu).

Odporúča: