Obsah:

12V LED PWM stmívač s ESP8266: 3 kroky
12V LED PWM stmívač s ESP8266: 3 kroky

Video: 12V LED PWM stmívač s ESP8266: 3 kroky

Video: 12V LED PWM stmívač s ESP8266: 3 kroky
Video: LED Dimmer PWM Controller ESP Web Server ESP32 PWM with Arduino IDE #shorts 2024, Červenec
Anonim
12V LED PWM stmívač s ESP8266
12V LED PWM stmívač s ESP8266

Při snaze zajistit udržitelnost své domácnosti jsem vyměňoval halogenové žárovky za LED světla. Existuje spousta alternativ, které nahradí jakýkoli typ žárovky. Při tom jsem narazil na následující problém: Měl jsem svítidlo, které používalo 7 12voltových halogenových žárovek, každá 10 wattů. Toto světlo bylo ovládáno stmívačem, který fungoval dobře. Když jsem vyměnil žárovky za 12 voltová led světla, každé 1 W, stmívač fungoval špatně: světlo blikalo a stmívání bylo poněkud nevyrovnané. To je problém mnoha klasických stmívačů: mají minimální výkon, který ke své činnosti potřebují.

Na základě svého systému domotics jsem se tedy rozhodl vyměnit tento ruční stmívač za nový, což by mělo tu výhodu, že by bylo možné jej dálkově ovládat. Už jsem postavil stmívač pomocí N-kanálového MOSFET (IRF540), který je pro tyto věci ideální: lze jej ovládat signálem PWM a je prakticky nezničitelný, s maximálním hodnocením 100 voltů a 33 ampérů, pro tento účel dostatečně bohatá (rychlá kontrola: 7 x 1 W = 7 W, děleno 12 volty dává maximální proud asi 0,58 A). Chci použít tento stmívač pro jiné zařízení, které má 12 žárovek, z nichž každá má 2 watty, což dává maximálně 2 ampéry, takže to také stačí. Jediná věc, na kterou je třeba dávat pozor, je frekvence signálu PWM, ale obvyklé hodnoty pro Arduino nebo ESP8266 (500 Hz nebo 1kHz) nejsou problém.

Krok 1: Krok 1: Komponenty

Krok 1: Komponenty
Krok 1: Komponenty
  1. Ovladač LED (měnič střídavého proudu na 230 voltů na 12 voltů) Pro svůj účel chci použít maximálně 24 wattů, a tak jsem začal s LED ovladačem na 12 voltů a 2 ampéry. Našel jsem jeden na webu čínského distributora. Tento ovladač měl hodnocení 12 voltů, 28 wattů, takže to stačilo na to, aby poháněl zařízení sám. Pro svou vlastní situaci můžete použít lehčí nebo těžší verzi, v závislosti na vašem zařízení.
  2. N-kanálový MOSFET IRF540
  3. Adafruit Huzzah ESP8266 Breakout Protože jsem chtěl používat WiFi a produkty Adafruit naprosto miluji, vybral jsem si tuto desku: dává mi ESP8266 s pohodlným programovacím pinoutem, integrovaným regulátorem výkonu a elegantním tvarovým faktorem. Pro tento projekt je to trochu přehnané, ale testování a ladění je mnohem jednodušší.
  4. Převodník DC-DC na bázi LM2596 Abych mohl odvodit výkon pro desku ESP z 12 voltů, potřeboval jsem regulátor; tyto malé převodníky jsou velmi efektivní a velmi levné.
  5. Rotační kodér s funkcí tlačítka, s vestavěným LED světlem:

    www.sparkfun.com/products/10596

    Jakýkoli rotační kodér by to udělal, ale líbila se mi pěkná přidaná funkce vestavěné LED.

  6. Čirý plastový knoflík

    www.sparkfun.com/products/10597

  7. Rezistor 4k7
  8. Rezistor 1k

Krok 2: Krok 2: Okruh

Krok 2: Okruh
Krok 2: Okruh

Toto jsem použil: Použil jsem piny 4 a 5 jako vstupy pro rotační kodér a pin 0 pro tlačítko. Pin 0 je také připojen k palubní červené LED, takže jsem mohl zkontrolovat funkci tlačítka na kódování sledováním této LED.

Pin 16 se používá pro výstup PWM a připojil jsem to přímo k zelené LED na kodéru Sparkfun. ESP8266 má 3, 3 volty, a dokonce se 100%jsem naměřil pouze 2, 9 voltový výstup, takže jsem jej připojil přímo bez sériového odporu. Stejný výstup jde do brány n-kanálového MOSFETu pomocí odporu 1 kOhm. Tato brána je vytažena vysoko na 12 voltů odporem 4,7 kOhm.

K převodu 12 V na 5,5 V jsem použil převodník DC-DC, který je připojen ke vstupu V+ průlomu Adafruit. Mohl jsem použít 3,3 voltů a připojit jej přímo, ale toto je o něco bezpečnější.

12 V LED lampa v obvodu je moje zařízení.

Krok 3: Krok 3: Kód

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

Vložil jsem kód na GitHub:

Skica pro stmívač LED PWM ESP8266

Je založen na nápadu, který lze instruovat jiným způsobem:

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

Ale toto bylo čistě lokální ovládání, tak jsem přidal vlastní domotické řešení založené na MQTT. V podstatě to dělá totéž, ale hlavní rozdíly jsou:

  • výchozí počet kroků PWM u Arduina je 255, u ESP8266 je to 1023 (jak jsem později zjistil, celý se snažím zjistit, proč moje LED svítidlo nevyšlo až na 100% jas …)
  • Obvod „Totempole“jsem se 2 tranzistory nepoužil, protože PWM byl stejnosměrný a s IRF 540 fungoval dobře.
  • Pro kodér jsem nepoužil 10k pull-up rezistory, věřil jsem vestavěným pullupům ESP8266.
  • ESP8266 používá 3,3 voltovou logiku místo 5 voltů pro Arduino, což pro IRF540 neprokázalo žádný problém

Software má následující funkce:

  • otáčením kodéru se ztlumí světlo nahoru (CW) nebo dolů (CCW) z 0 na 100%v 1023 krocích, přičemž v nižších úrovních dojde k určitému zrychlení.
  • stisknutím tlačítka se rozsvítí světlo, když je vypnuté, pomocí poslední uložené úrovně jasu, nebo zhasne, když je zapnuté.
  • delším stisknutím tlačítka při zapnutém světle se aktuální jas uloží jako výchozí úroveň.
  • delším stisknutím tlačítka, když je světlo vypnuté, se světlo zapne na 100% jas, aniž by došlo ke změně výchozí úrovně.
  • Připojí se k nastavení WiFi definovanému řetězci 'SECRET_SSID' a 'SECRET_PASS', které jsou v mém náčrtu uloženy v samostatném souboru s názvem 'secrets.h'
  • Připojí se k serveru MQTT v síti WiFi pomocí řetězců „MQTTSERVER“a „MQTTPORT“ve stejném souboru.
  • Příchozí téma MQTT „domus/esp/in“můžete použít k vydávání příkazů: „ON“nebo „OFF“pro zapnutí nebo vypnutí světla, nebo hodnotu od 0 do 1023 pro změnu jasu.
  • Bude hlásit stav u témat MQTT „domus/esp/uit“(stav ZAPNUTO nebo VYPNUTO) a „domus/esp/uit/jas“(hodnota jasu).

Doporučuje: