Satura rādītājs:

12 V LED PWM dimmeris ar ESP8266: 3 soļi
12 V LED PWM dimmeris ar ESP8266: 3 soļi

Video: 12 V LED PWM dimmeris ar ESP8266: 3 soļi

Video: 12 V LED PWM dimmeris ar ESP8266: 3 soļi
Video: 12v PWM LED dimmer circuit with Arduino | How to make a 12v PWM LED DIMMER CIRCUIT using Arduino 2024, Jūlijs
Anonim
12V LED PWM dimmeris ar ESP8266
12V LED PWM dimmeris ar ESP8266

Mēģinot padarīt savu mājsaimniecību ilgtspējīgāku, es samainīju halogēna spuldzes pret LED gaismām. Ir pieejamas daudzas alternatīvas jebkura veida spuldzes nomaiņai. To darot, es saskāros ar šādu problēmu: man bija gaismas ierīce, kurā tika izmantotas 7 12 voltu halogēna spuldzes, katra 10 vati. Šo gaismu kontrolēja dimmeris, kas darbojās labi. Kad es nomainīju spuldzes pret 12 voltu gaismas diodēm, katrai 1 vatam, dimmeris strādāja slikti: gaisma mirgoja un aptumšošana bija nedaudz nestabila. Tā ir problēma ar daudziem klasiskajiem dimmeriem: tiem ir minimāla jaudas pakāpe, kas nepieciešama darbam.

Tātad, pamatojoties uz manu domotikas sistēmu, es nolēmu nomainīt šo manuālo dimmeri pret jaunu, kam būtu papildu priekšrocība - to varētu vadīt attālināti. Es jau biju uzbūvējis dimmeri, izmantojot N kanāla MOSFET (IRF540), kas ir ideāli piemērots šāda veida lietām: to var kontrolēt ar PWM signālu, un tas ir praktiski neiznīcināms, ar maksimālo nominālo vērtību 100 volti un 33 ampēri, pietiekami daudz šim nolūkam (ātra pārbaude: 7 x 1 vati = 7 vati, dalīti ar 12 voltiem, nodrošina maksimālo strāvu aptuveni.58 ampēri). Es vēlos izmantot šo regulētāju citam stiprinājumam, kurā ir 12 spuldzes, katra 2 vati, kas nodrošina maksimāli 2 ampērus, tāpēc arī ar to pietiek. Vienīgais, kas jāuzmanās no PWM signāla frekvences, bet Arduino vai ESP8266 parastās vērtības (500 Hz vai 1 kHz) nav problēma.

1. darbība: 1. darbība: sastāvdaļas

1. darbība: sastāvdaļas
1. darbība: sastāvdaļas
  1. LED draiveris (230 voltu maiņstrāvas līdz 12 voltu līdzstrāvas pārveidotājs) Šim nolūkam es vēlos izmantot ne vairāk kā 24 vatus, tāpēc es sāku ar 12 voltu un 2 ampēru LED draiveri. Es to atradu Ķīnas izplatītāja vietnē. Šim vadītājam bija 12 volti, 28 vati, tāpēc ar to pietika, lai armatūru vadītu pats. Jūsu situācijai atkarībā no jūsu aprīkojuma varat izmantot vieglāku vai smagāku versiju.
  2. IRF540 n-kanālu MOSFET
  3. Tā kā es gribēju izmantot WiFi un man ļoti patīk Adafruit produkti, es izvēlējos šo dēli: tas man dod ESP8266 ar ērtu programmēšanas pinout, iebūvētu jaudas regulatoru un elegantu formas faktoru. Šim projektam tas ir nedaudz pārspīlēts, taču tas ievērojami atvieglo testēšanu un atkļūdošanu.
  4. LM2596 bāzes DC-DC pārveidotājs šie mazie pārveidotāji ir ļoti efektīvi un ļoti lēti.
  5. Rotācijas kodētājs ar pogu funkciju, ar iebūvētu LED gaismu:

    www.sparkfun.com/products/10596

    Derētu jebkurš rotējošais kodētājs, bet man patika jauki pievienotā iebūvētās gaismas diodes funkcija.

  6. Skaidra plastmasas poga

    www.sparkfun.com/products/10597

  7. Rezistors 4k7
  8. Rezistors 1k

2. darbība: 2. darbība: ķēde

2. solis: ķēde
2. solis: ķēde

Šī ir ķēde, kuru es izmantoju: es izmantoju tapas 4 un 5 kā ieejas rotācijas kodētājam un 0 taustiņu pogai. Piespraude 0 ir savienota arī ar borta sarkano gaismas diodi, tāpēc es varētu pārbaudīt kodēšanas pogas darbību, skatoties šo vadību.

PWM izvadei tiek izmantota 16. tapa, un es to savienoju tieši ar zaļo gaismas diodi Sparkfun kodētājā. ESP8266 ir 3, 3 volti, un pat ar 100%es izmērīju tikai 2, 9 voltu izeju, tāpēc es to pievienoju tieši bez sērijas rezistora. Šī pati izeja iet uz n-kanālu MOSFET vārtiem, izmantojot 1 kOhm rezistoru. Šo vārtu augstumu līdz 12 voltiem velk 4,7 kOhm rezistors.

Es izmantoju DC-DC pārveidotāju, lai pārveidotu 12 voltus uz 5,5 voltiem, tas ir savienots ar Adafruit izlaušanās V+ ieeju. Es būtu varējis izmantot 3,3 voltus un tieši to savienot, taču tas ir mazliet drošāk.

12 V LED lampa ķēdē ir mans aprīkojums.

3. darbība: 3. darbība: kods

3. darbība: kods
3. darbība: kods

Es ievietoju kodu GitHub:

Skice ESP8266 LED PWM dimmerim

Tas ir balstīts uz citu pamācāmu ideju:

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

Bet šī bija tīri vietēja kontrole, tāpēc es pievienoju savu uz MQTT balstītu domotikas risinājumu. Tas būtībā dara to pašu, bet galvenās atšķirības ir šādas:

  • noklusējuma PWM soļu skaits ar Arduino ir 255, ar ESP8266 tas ir 1023 (kā es uzzināju vēlāk, viss, mēģinot noskaidrot, kāpēc mans LED aprīkojums nepalielinājās līdz 100% spilgtumam …)
  • Es neizmantoju “Totempole” ķēdi ar 2 tranzistoriem, jo PWM jebkurā gadījumā bija līdzstrāva un labi darbojās ar IRF 540.
  • Kodētājam neizmantoju 10k uzvilkšanas rezistorus, uzticējos ESP8266 iebūvētajiem pullupiem.
  • ESP8266 izmanto Arduino 5 voltu vietā 3,3 voltu loģiku, kas IRF540 nav izrādījusies problēma

Programmatūrai ir šādas funkcijas:

  • pagriežot kodētāju, gaisma palielināsies (CW) vai lejup (CCW), no 0 līdz 100%, veicot 1023 soļus, nedaudz paātrinot zemākos līmeņos.
  • nospiežot pogu, gaisma ieslēgsies, kad tā būs izslēgta, izmantojot pēdējo saglabāto spilgtuma līmeni, vai izslēgsies, kad tā būs ieslēgta.
  • ilgāk nospiežot pogu, kamēr gaisma ir ieslēgta, pašreizējais spilgtums tiks saglabāts kā noklusējuma līmenis.
  • ilgāk nospiežot pogu, kamēr gaisma ir izslēgta, gaisma tiks ieslēgta līdz 100% spilgtumam, nemainot noklusējuma līmeni.
  • Tas izveidos savienojumu ar WiFi iestatījumiem, ko nosaka virknes “SECRET_SSID” un “SECRET_PASS”, kas manā skicē tiek saglabāti atsevišķā failā ar nosaukumu “secrets.h”.
  • Tas izveidos savienojumu ar MQTT serveri WiFi tīklā, izmantojot vienā failā esošās virknes 'MQTTSERVER' un 'MQTTPORT'.
  • Varat izmantot MQTT ienākošo tēmu “domus/esp/in”, lai izdotu komandas: “ON” vai “OFF”, lai ieslēgtu vai izslēgtu gaismu, vai vērtību no 0 līdz 1023, lai mainītu spilgtumu.
  • Tas ziņos par stāvokli MQTT tēmās “domus/esp/uit” (ieslēgts vai izslēgts statuss) un “domus/esp/uit/brightness” (spilgtuma vērtība).

Ieteicams: