Sadržaj:

12V LED PWM prigušivač s ESP8266: 3 koraka
12V LED PWM prigušivač s ESP8266: 3 koraka

Video: 12V LED PWM prigušivač s ESP8266: 3 koraka

Video: 12V LED PWM prigušivač s ESP8266: 3 koraka
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Srpanj
Anonim
12V LED PWM prigušivač s ESP8266
12V LED PWM prigušivač s ESP8266

Pokušavajući učiniti svoje kućanstvo održivijim, mijenjao sam halogene žarulje za LED svjetla. Na raspolaganju je mnogo alternativa za zamjenu bilo koje vrste žarulje. Pritom sam naišao na sljedeći problem: imao sam rasvjetno tijelo koje je koristilo 7 halogenih žarulja od 12 volti, svaka po 10 vati. Ovom svjetlošću upravljao je prigušivač, koji je dobro funkcionirao. Kad sam zamijenio žarulje za 12 -voltna LED svjetla, svaki od 1 W, prigušivač je radio loše: svjetlo je treperilo, a zatamnjivanje pomalo nestabilno. To je problem s mnogim klasičnim zatamnjivačima: oni imaju minimalnu snagu koja im je potrebna za rad.

Stoga sam, na temelju svog domotičkog sustava, odlučio zamijeniti ovaj ručni prigušivač za novi, koji bi imao dodatnu prednost u mogućnosti daljinskog upravljanja. Već sam sagradio prigušivač pomoću N-kanalnog MOSFET-a (IRF540), koji je savršen za takve stvari: njime se može upravljati putem PWM signala, a on je gotovo neuništiv, s maksimalnim nazivima od 100 volti i 33 ampera, dovoljno dovoljno za tu svrhu (brza provjera: 7 x 1 W = 7 W, podijeljeno s 12 V daje maksimalnu struju od oko, 58 Ampera). Želim koristiti ovaj prigušivač za drugo tijelo koje ima 12 žarulja, svaka po 2 vata, što daje najviše 2 ampera, pa je i to dovoljno. Jedino na što treba paziti je frekvencija PWM signala, ali uobičajene vrijednosti za Arduino ili ESP8266 (500 Hz ili 1 kHz) nisu problem.

Korak 1: Korak 1: Komponente

Korak 1: Komponente
Korak 1: Komponente
  1. LED upravljački program (230 V AC pretvarač na 12 V DC) U svoju svrhu želim koristiti najviše 24 W, pa sam počeo s LED pogonom od 12 V i 2 Ampera. Našao sam ga na jednom kineskom distributerskom mjestu. Ovaj je upravljački program bio ocijenjen na 12 volti, 28 vata, pa je bilo dovoljno za samostalno upravljanje uređajem. Za vlastitu situaciju, možete koristiti lakšu ili težu verziju, ovisno o vašem uređaju.
  2. IRF540 n-kanalni MOSFET
  3. Adafruit Huzzah ESP8266 Breakout Budući da sam htio koristiti WiFi i apsolutno volim Adafruit proizvode, odabrao sam ovu ploču: ona mi daje ESP8266 s prikladnim ispisom za programiranje, ugrađenim regulatorom snage i elegantnim oblikom. Malo je pretjerano za ovaj projekt, ali znatno olakšava testiranje i ispravljanje pogrešaka.
  4. DC-DC pretvarač temeljen na LM2596Da bih napajanje ESP ploče dobio iz 12 volti, trebao mi je regulator; ti mali pretvarači vrlo su učinkoviti i vrlo jeftini.
  5. Rotacijski davač s funkcijom gumba, s ugrađenim LED svjetlom:

    www.sparkfun.com/products/10596

    Bilo koji rotacijski enkoder bi odgovarao, ali svidjela mi se lijepa dodatna značajka ugrađene LED diode.

  6. Čista plastična ručica

    www.sparkfun.com/products/10597

  7. Otpornik 4k7
  8. Otpornik 1k

Korak 2: Korak 2: Krug

Korak 2: Krug
Korak 2: Krug

Ovo je krug koji sam koristio: koristio sam pinove 4 i 5 kao ulaze za okretni davač, a pin 0 za gumb. Pin 0 je također povezan s ugrađenim crvenim LED-om, pa sam mogao provjeriti funkciju gumba na kodiranju gledajući ovaj LED.

Pin 16 se koristi za PWM izlaz, a ja sam ga spojio izravno na zelenu LED diodu na enkoderu Sparkfun. ESP8266 ima 3, 3 volta, pa čak i sa 100%izmjerio sam samo 2,9 volta na izlazu, pa sam ga spojio izravno bez serijskog otpornika. Isti izlaz ide na vrata n-kanalnog MOSFET-a, pomoću otpornika od 1 kOhm. Ova vrata se vuku visoko na 12 volti pomoću otpornika od 4,7 kOhm.

Koristio sam DC-DC pretvarač za pretvaranje 12 volti u 5,5 volti, ovo je povezano s V+ ulazom Adafruit proboja. Mogao sam koristiti 3,3 volta i izravno ga spojiti, ali ovo je malo sigurnije.

LED lampa od 12 V u krugu moje je tijelo.

Korak 3: Korak 3: Kôd

Korak 3: Kôd
Korak 3: Kôd

Kôd sam stavio na GitHub:

Skica za ESP8266 LED PWM prigušivač

Temelji se na ideji još jedne pouke:

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

Ali ovo je bila isključivo lokalna kontrola, pa sam dodao svoje rješenje za domotiku zasnovano na MQTT-u. U osnovi radi istu stvar, ali glavne razlike su:

  • zadani broj koraka PWM -a s Arduinom je 255, s ESP8266 je 1023 (kao što sam kasnije saznao, pokušavajući shvatiti zašto se moje LED svjetlo nije podiglo sve do 100% svjetline …)
  • Nisam koristio sklop 'Totempole' s 2 tranzistora, budući da je PWM ionako bio istosmjeran, i dobro je radio s IRF 540.
  • Za koder nisam koristio 10k pull-up otpornike, vjerovao sam ugrađenim pullup-ovima ESP8266.
  • ESP8266 koristi logiku od 3,3 volta umjesto 5 volti za Arduino, što nije bilo problem za IRF540

Softver ima sljedeće značajke:

  • okretanjem kodera prigušit će se svjetlo (CW) ili dolje (CCW), od 0 pa sve do 100%, u 1023 koraka, s tim da će se neke ubrzati na nižim razinama.
  • pritiskom na gumb svjetlo će se upaliti kad je isključeno, koristeći zadnju spremljenu razinu svjetline, ili će se isključiti kad je uključeno.
  • duljim pritiskom na tipku dok je svjetlo uključeno spremit ćete trenutnu svjetlinu kao zadanu razinu.
  • duljim pritiskom na gumb dok je svjetlo isključeno svjetlo će se upaliti na 100% svjetline, bez promjene zadane razine.
  • Povezivat će se s WiFi postavkama definiranim nizovima 'SECRET_SSID' i 'SECRET_PASS', koje su spremljene u zasebnu datoteku na mojoj skici, zvanu 'secrets.h'
  • Spojit će se na MQTT poslužitelj u WiFi mreži, koristeći nizove 'MQTTSERVER' i 'MQTTPORT' u istoj datoteci.
  • Možete koristiti dolaznu temu MQTT 'domus/esp/in' za izdavanje naredbi: 'ON' ili 'OFF' za uključivanje ili isključivanje svjetla ili vrijednost od 0 do 1023 za promjenu svjetline.
  • Izvijestit će stanje o temama MQTT -a 'domus/esp/uit' (status ON ili OFF) i 'domus/esp/uit/brightness' (vrijednost svjetline).

Preporučeni: