INHOUDSOPGAWE:

12V LED PWM -dimmer met ESP8266: 3 stappen
12V LED PWM -dimmer met ESP8266: 3 stappen

Video: 12V LED PWM -dimmer met ESP8266: 3 stappen

Video: 12V LED PWM -dimmer met ESP8266: 3 stappen
Video: Топ-3 удивительных светодиодных схем для дыхания - в одном видео 2024, November
Anonim
12V LED PWM -dimmer met ESP8266
12V LED PWM -dimmer met ESP8266

Terwyl ek probeer om my huishouding meer volhoubaar te maak, het ek halogeenlampe vir LED -ligte verruil. Daar is baie alternatiewe beskikbaar om enige tipe gloeilamp te vervang. Terwyl ek dit gedoen het, het ek die volgende probleem teëgekom: ek het 'n lamp gehad wat 7 12 volt halogeen gloeilampe gebruik, elk 10 watt. Hierdie lig is beheer deur 'n dimmer, wat goed gewerk het. Toe ek die gloeilampe verruil vir 12 volt LED -ligte, elke 1 Watt, werk die dimmer sleg: die lig flikker en die verdowning effens wisselvallig. Dit is 'n probleem met baie klassieke dimmers: hulle het 'n minimale drywing wat hulle nodig het om te kan werk.

Op grond van my domotika -stelsel het ek besluit om hierdie handmatige dimmer met 'n nuwe een te verruil, wat die bykomende voordeel het dat ek op afstand beheer kan word. Ek het reeds 'n dimmer gebou met 'n N-kanaal MOSFET (IRF540), wat perfek is vir hierdie soort dinge: dit kan beheer word deur 'n PWM-sein, en dit is feitlik onvernietigbaar, met 'n maksimum van 100 volt en 33 ampère, voldoende vir hierdie doel (vinnige kontrole: 7 x 1 watt = 7 watt, gedeel deur 12 volt, gee 'n maksimum stroom van ongeveer.58 ampère). Ek wil hierdie dimmer gebruik vir 'n ander armatuur met 12 gloeilampe, elk 2 watt, wat 'n maksimum van 2 Ampère gee, wat ook voldoende is. Die enigste ding om op te let vir die frekwensie van die PWM -sein, maar die gewone waardes vir Arduino of ESP8266 (500 Hz of 1kHz) is nie 'n probleem nie.

Stap 1: Stap 1: die komponente

Stap 1: die komponente
Stap 1: die komponente
  1. LED driver (230 volt AC tot 12 volt DC converter) Vir my doel wil ek 'n maksimum van 24 Watts gebruik, so ek het begin met 'n LED driver van 12 volt en 2 Amps. Ek het een op 'n Chinese verspreiderwebwerf gekry. Hierdie bestuurder het 'n nominale spanning van 12 volt, 28 watt, dus dit was voldoende om die toestel self te bestuur. Afhangende van u toestel, kan u 'n ligter of swaarder weergawe gebruik vir u eie situasie.
  2. IRF540 n-kanaal MOSFET
  3. Adafruit Huzzah ESP8266 Breakout Omdat ek WiFi wou gebruik, en ek is absoluut mal oor Adafruit se produkte, het ek hierdie bord gekies: dit gee my 'n ESP8266 met 'n maklike programmering, 'n ingeboude kragreguleerder en 'n elegante vormfaktor. Dit is 'n bietjie te veel vir hierdie projek, maar dit maak toets en ontfouting baie makliker.
  4. LM2596-gebaseerde DC-DC-omskakelaar Om die krag van die ESP-bord uit die 12 volt te verkry, het ek 'n reguleerder nodig gehad; hierdie klein omsetters is baie doeltreffend en baie goedkoop.
  5. Draaikodeerder met knoppie-funksie, met ingeboude LED-lig:

    www.sparkfun.com/products/10596

    Enige roterende encoder sou doen, maar ek hou van die ekstra funksie van 'n ingeboude LED.

  6. Deursigtige plastiek knop

    www.sparkfun.com/products/10597

  7. Weerstand 4k7
  8. Weerstand 1k

Stap 2: Stap 2: die kring

Stap 2: die kring
Stap 2: die kring

Dit is die stroombaan wat ek gebruik het: ek het penne 4 en 5 as insette vir die draaikodeerder gebruik en pen 0 vir die knoppie. Pin 0 is ook gekoppel aan die ingeboude rooi led, sodat ek die funksie van die knoppie op die kode kan nagaan deur na hierdie LED te kyk.

Speld 16 word gebruik vir die PWM -uitvoer, en ek het dit direk gekoppel aan die groen led op die Sparkfun -enkodeerder. Die ESP8266 is 3, 3 volt, en selfs met 100%het ek slegs 2, 9 volt se uitset gemeet, so ek het dit direk verbind sonder 'n reeksweerstand. Dieselfde uitset gaan na die poort van die n-kanaal MOSFET, deur middel van 'n 1kOhm-weerstand. Hierdie hek word tot 12 volt getrek deur 'n 4,7 kOhm-weerstand.

Ek het die DC-DC-omskakelaar gebruik om die 12 volt na 5,5 volt om te skakel, dit is gekoppel aan die V+ -invoer van die Adafruit breakout. Ek sou 3.3 volt kon gebruik en dit direk konnekteer, maar dit is 'n bietjie veiliger.

Die 12 V LED -lamp in die stroombaan is my toestel.

Stap 3: Stap 3: die kode

Stap 3: die kode
Stap 3: die kode

Ek plaas die kode op GitHub:

Skets vir ESP8266 LED PWM dimmer

Dit is gebaseer op 'n idee wat nog 'n opdrag is:

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

Maar dit was bloot plaaslike beheer, so ek het my eie MQTT-gebaseerde domotika-oplossing bygevoeg. Dit doen basies dieselfde, maar die belangrikste verskille is:

  • die standaard aantal PWM -stappe met 'n Arduino is 255, met die ESP8266 is dit 1023 (soos ek later uitgevind het, probeer ek uitvind hoekom my LED -lamp nie 100% helder geword het nie …)
  • Ek het nie die 'Totempole' -kring met die 2 transistors gebruik nie, aangesien die PWM in elk geval DC was, en het dit goed gewerk met die IRF 540.
  • Ek het nie die 10k optrekweerstands vir die encoder gebruik nie; ek het die ingeboude pullups van die ESP8266 vertrou.
  • Die ESP8266 gebruik 3.3 volt logika in plaas van 5 volt vir die Arduino, wat geen probleem vir die IRF540 was nie

Die sagteware het die volgende funksies:

  • As u die encoder draai, word die lig (CW) of af (CCW) verlaag, van 0 tot 100%, in 1023 stappe, terwyl die laer vlakke versnel word.
  • As u op die knoppie druk, word die lig aangeskakel as dit af is, met die laaste gestoorde helderheidsvlak, of as dit aan is.
  • As u die knoppie langer ingedruk hou terwyl die lig brand, word die huidige helderheid as standaardvlak bespaar.
  • As u die knoppie langer ingedruk hou terwyl die lig af is, word die lig 100% helder, sonder om die standaardvlak te verander.
  • Dit maak verbinding met die WiFi -instellings wat gedefinieer word deur die 'SECRET_SSID' en 'SECRET_PASS' snare, wat in 'n aparte lêer in my skets gestoor word, genaamd 'secrets.h'
  • Dit maak verbinding met 'n MQTT -bediener in die WiFi -netwerk met behulp van die 'MQTTSERVER'- en' MQTTPORT' -snare in dieselfde lêer.
  • U kan die MQTT -inkomende onderwerp 'domus/esp/in' gebruik om opdragte uit te voer: 'AAN' of 'UIT' om die lig aan of uit te skakel, of 'n waarde van 0 tot 1023 om die helderheid te verander.
  • Dit sal die toestand oor die MQTT -onderwerpe 'domus/esp/uit' (AAN of UIT) en 'domus/esp/uit/helderheid' (die helderheidswaarde) rapporteer.

Aanbeveel: