Indholdsfortegnelse:

12V LED PWM Dimmer med ESP8266: 3 trin
12V LED PWM Dimmer med ESP8266: 3 trin

Video: 12V LED PWM Dimmer med ESP8266: 3 trin

Video: 12V LED PWM Dimmer med ESP8266: 3 trin
Video: DIY RGB LED STRIP CONTROLLER #shorts #ytshorts 2024, November
Anonim
12V LED PWM Dimmer med ESP8266
12V LED PWM Dimmer med ESP8266

Mens jeg forsøgte at gøre min husstand mere bæredygtig, byttede jeg halogenpærer til LED -lamper. Der findes masser af alternativer til udskiftning af enhver form for pære. Mens jeg gjorde dette, stødte jeg på følgende problem: Jeg havde en lampe, der brugte 7 12 volt halogenpærer, hver 10 Watt. Dette lys blev styret af en dæmper, som fungerede fint. Da jeg byttede pærerne til 12 volt LED -lys, hver 1 Watt, fungerede lysdæmperen dårligt: lyset flimrede og dæmpningen noget uregelmæssig. Dette er et problem med mange klassiske dæmpere: de har en minimal effektværdi, som de har brug for for at fungere.

Så baseret på mit domotics -system besluttede jeg at udveksle denne manuelle dæmper med en ny, hvilket ville have den ekstra fordel, at den kunne fjernstyres. Jeg havde allerede bygget en lysdæmper ved hjælp af en N-kanal MOSFET (IRF540), som er perfekt til denne slags ting: den kan styres af et PWM-signal, og den er praktisk talt uforgængelig med en maksimalværdi på 100 volt og 33 ampere, rigeligt nok til dette formål (hurtig kontrol: 7 x 1 Watt = 7 Watt, divideret med 12 volt giver en maksimal strøm på ca. 0,58 ampere). Jeg vil bruge denne lysdæmper til en anden armatur, der har 12 pærer, hver 2 watt, hvilket giver maksimalt 2 ampere, så det er også tilstrækkeligt. Det eneste der skal passe på frekvensen af PWM -signalet, men de sædvanlige værdier for Arduino eller ESP8266 (500 Hz eller 1 kHz) er ikke et problem.

Trin 1: Trin 1: Komponenterne

Trin 1: Komponenterne
Trin 1: Komponenterne
  1. LED Driver (230 volt AC til 12 volt DC converter) Til mit formål vil jeg maksimalt bruge 24 watt, så jeg startede med en LED driver på 12 volt og 2 ampere. Jeg fandt en på et kinesisk distributørsite. Denne driver blev vurderet til 12 volt, 28 watt, så det var tilstrækkeligt at køre armaturet af sig selv. Til din egen situation kan du bruge en lettere eller tungere version, afhængigt af din armatur.
  2. IRF540 n-kanal MOSFET
  3. Adafruit Huzzah ESP8266 Breakout Fordi jeg ville bruge WiFi, og jeg er helt vild med Adafruit's produkter, valgte jeg dette board: det giver mig en ESP8266 med en bekvem programmering pinout, en indbygget strømregulator og en elegant formfaktor. Det er en smule overkill for dette projekt, men det gør testning og fejlfinding meget lettere.
  4. LM2596-baseret DC-DC-konverter For at få strøm til ESP-kortet fra 12 volt, havde jeg brug for en regulator; disse små konvertere er meget effektive og meget billige.
  5. Rotary Encoder med knapfunktion, med indbygget LED-lys:

    www.sparkfun.com/products/10596

    Enhver roterende encoder ville gøre, men jeg kunne godt lide den flotte ekstra funktion i en indbygget LED.

  6. Klar plastknap

    www.sparkfun.com/products/10597

  7. Modstand 4k7
  8. Modstand 1k

Trin 2: Trin 2: kredsløbet

Trin 2: kredsløbet
Trin 2: kredsløbet

Dette er det kredsløb, jeg brugte: Jeg brugte ben 4 & 5 som indgange til den roterende encoder og pin 0 til knappen. Pin 0 er også forbundet med den indbyggede røde LED, så jeg kunne kontrollere funktionen af knappen på kodningen ved at se denne LED.

Pin 16 bruges til PWM output, og jeg tilsluttede dette direkte til den grønne LED på Sparkfun encoder. ESP8266 er 3, 3 volt, og selv med 100%målte jeg kun 2, 9 volt output, så jeg tilsluttede det direkte uden en seriemodstand. Den samme output går til porten på n-kanal MOSFET ved hjælp af en 1 kOhm modstand. Denne port trækkes højt til 12 volt af en 4,7 kOhm modstand.

Jeg brugte DC-DC-konverteren til at konvertere de 12 volt til 5,5 volt, dette er forbundet til V+ -indgangen i Adafruit breakout. Jeg kunne have brugt 3,3 volt og tilsluttet det direkte, men det er lidt mere sikkert.

12 V LED -lampen i kredsløbet er mit armatur.

Trin 3: Trin 3: Koden

Trin 3: Koden
Trin 3: Koden

Jeg satte koden på GitHub:

Skitse til ESP8266 LED PWM lysdæmper

Det er baseret på en idé, som en anden kan instrueres:

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

Men dette var rent lokal kontrol, så jeg tilføjede min egen MQTT-baserede domotik-løsning. Det gør stort set det samme, men de største forskelle er:

  • standardantallet af PWM -trin med en Arduino er 255, med ESP8266 er det 1023 (som jeg fandt ud af senere, hele forsøg på at finde ud af, hvorfor min LED -armatur ikke steg helt op til 100% lysstyrke …)
  • Jeg brugte ikke 'Totempole' kredsløbet med de 2 transistorer, da PWM alligevel var DC og fungerede fint med IRF 540.
  • Jeg brugte ikke 10k pull-up modstande til encoderen, jeg stolede på de indbyggede pullups i ESP8266.
  • ESP8266 bruger 3,3 volt logik i stedet for 5 volt til Arduino, hvilket viste sig ikke at være noget problem for IRF540

Softwaren har følgende funktioner:

  • drejning af encoder vil dæmpe lyset op (CW) eller ned (CCW), fra 0 hele vejen til 100%, i 1023 trin, med en vis fremskyndelse i de lavere niveauer.
  • Hvis du trykker på knappen, tændes lyset, når det er slukket, ved hjælp af det sidst gemte lysstyrkeniveau, eller det slukkes, når det er tændt.
  • Hvis du trykker på knappen i længere tid, mens lyset er tændt, gemmes den aktuelle lysstyrke som standardniveau.
  • Hvis du trykker på knappen i længere tid, mens lyset er slukket, tændes lyset til 100% lysstyrke uden at ændre standardniveauet.
  • Den opretter forbindelse til WiFi -indstillingerne defineret af strengene 'SECRET_SSID' og 'SECRET_PASS', som er gemt i en separat fil i min skitse, kaldet 'secrets.h'
  • Den opretter forbindelse til en MQTT -server i WiFi -netværket ved hjælp af strengene 'MQTTSERVER' og 'MQTTPORT' i den samme fil.
  • Du kan bruge det indgående emne MQTT 'domus/esp/in' til at udstede kommandoer: 'ON' eller 'OFF' for at tænde eller slukke lyset, eller en værdi fra 0 til 1023 for at ændre lysstyrken.
  • Den rapporterer tilstanden om MQTT -emnerne 'domus/esp/uit' (ON eller OFF -status) og 'domus/esp/uit/brightness' (lysstyrkeværdien).

Anbefalede: