Innehållsförteckning:

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

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

Video: 12V LED PWM Dimmer med ESP8266: 3 steg
Video: DC 10-55V 60A Motor Speed Controller PWM Reverse Control Switch with LED Display relay | Robojax 2024, November
Anonim
12V LED PWM -dimmer med ESP8266
12V LED PWM -dimmer med ESP8266

När jag försökte göra mitt hushåll mer hållbart bytte jag ut halogenlampor mot LED -lampor. Det finns gott om alternativ att byta ut alla typer av glödlampor. När jag gjorde detta stötte jag på följande problem: Jag hade en lampa som använde 7 12 volts halogenlampor, var 10 watt. Detta ljus styrdes av en dimmer, vilket fungerade bra. När jag bytte lamporna mot 12 volts LED -lampor, varje 1 Watt, fungerade dimmern dåligt: ljuset flimrade och dimningen blev något oregelbunden. Detta är ett problem med många klassiska dimmare: de har en minimal effektnivå som de behöver för att fungera.

Så, baserat på mitt domotiksystem, bestämde jag mig för att byta den här manuella dimmern mot en ny, vilket skulle ha den extra fördelen att kunna fjärrstyras. Jag hade redan byggt en dimmer med en N-kanal MOSFET (IRF540), vilket är perfekt för den här typen av saker: den kan styras av en PWM-signal, och den är praktiskt taget oförstörbar, med maximala effekter på 100 volt och 33 ampere, tillräckligt för detta ändamål (snabbkontroll: 7 x 1 Watt = 7 Watt, dividerat med 12 volt ger en maximal ström på cirka.58 ampere). Jag vill använda denna dimmer för en annan armatur som har 12 lampor, varje 2 watt, vilket ger högst 2 ampere, så det är också tillräckligt. Det enda som ska se upp för PWM -signalens frekvens, men de vanliga värdena för Arduino eller ESP8266 (500 Hz eller 1 kHz) är inte ett problem.

Steg 1: Steg 1: Komponenterna

Steg 1: Komponenterna
Steg 1: Komponenterna
  1. LED -drivrutin (230 volt AC till 12 volt DC -omvandlare) För mitt ändamål vill jag använda maximalt 24 watt, så jag började med en LED -drivare på 12 volt och 2 ampere. Jag hittade en på en kinesisk distributörssida. Denna förare fick 12 volt, 28 watt, så det var tillräckligt att köra fixturen själv. För din egen situation kan du använda en lättare eller tyngre version, beroende på din armatur.
  2. IRF540 n-kanal MOSFET
  3. Adafruit Huzzah ESP8266 BreakoutFör att jag ville använda WiFi, och jag älskar absolut Adafruits produkter, valde jag det här kortet: det ger mig en ESP8266 med en praktisk programmering pinout, en inbyggd effektregulator och en elegant formfaktor. Det är lite överkill för det här projektet, men det gör testning och felsökning mycket enklare.
  4. LM2596-baserad DC-DC-omvandlare För att få ström till ESP-kortet från 12 volt behövde jag en regulator; dessa små omvandlare är mycket effektiva och mycket billiga.
  5. Rotary Encoder med knappfunktion, med inbyggt LED-ljus:

    www.sparkfun.com/products/10596

    Vilken roterande kodare som helst skulle göra, men jag gillade den fina extrafunktionen hos en inbyggd LED.

  6. Klar plastknopp

    www.sparkfun.com/products/10597

  7. Motstånd 4k7
  8. Motstånd 1k

Steg 2: Steg 2: Kretsen

Steg 2: Kretsen
Steg 2: Kretsen

Detta är kretsen jag använde: Jag använde stiften 4 & 5 som ingångar för den roterande givaren och stift 0 för knappen. Pin 0 är också ansluten till den inbyggda röda lysdioden, så jag kan kontrollera funktionen på knappen på kodningen genom att titta på den här lysdioden.

Pin 16 används för PWM -utgången, och jag kopplade detta direkt till den gröna lysdioden på Sparkfun -kodaren. ESP8266 är 3, 3 volt, och även med 100%mätte jag bara 2, 9 volt utgång, så jag kopplade den direkt utan ett seriemotstånd. Samma utgång går till porten på n-kanal MOSFET, med hjälp av ett 1 kOhm motstånd. Denna port dras högt till 12 volt av ett 4,7 kOhm motstånd.

Jag använde DC-DC-omvandlaren för att konvertera 12 volt till 5,5 volt, detta är anslutet till V+ ingången i Adafruit breakout. Jag kunde ha använt 3,3 volt och anslutit det direkt, men det här är lite säkrare.

12 V LED -lampan i kretsen är min armatur.

Steg 3: Steg 3: Koden

Steg 3: Koden
Steg 3: Koden

Jag lägger koden på GitHub:

Skiss för ESP8266 LED PWM -dimmer

Den är baserad på en idé som en annan instruerbar:

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

Men detta var rent lokal kontroll, så jag lade till min egen MQTT-baserade domotiklösning. Det gör i princip samma sak, men de viktigaste skillnaderna är:

  • standardantal PWM -steg med en Arduino är 255, med ESP8266 är det 1023 (som jag fick reda på senare, hela försök att ta reda på varför min LED -armatur inte gick upp till 100% ljusstyrka …)
  • Jag använde inte "Totempole" -kretsen med de 2 transistorerna, eftersom PWM ändå var likström och fungerade bra med IRF 540.
  • Jag använde inte 10k pull-up motstånd för pulsgivaren, jag litade på de inbyggda pullupsna i ESP8266.
  • ESP8266 använder 3,3 volt logik istället för 5 volt för Arduino, vilket inte visade sig vara något problem för IRF540

Programvaran har följande funktioner:

  • vridning av givaren kommer att dämpa ljuset (CW) eller ner (CCW), från 0 hela vägen till 100%, i 1023 steg, med en viss hastighet i de lägre nivåerna.
  • genom att trycka på knappen tänds lampan när den är släckt, med hjälp av den senast sparade ljusstyrkan, eller stängs av när den är på.
  • genom att trycka på knappen en längre tid medan lampan lyser kommer den aktuella ljusstyrkan att sparas som standardnivå.
  • genom att trycka på knappen längre medan lampan är släckt tänds lampan till 100% ljusstyrka utan att ändra standardnivån.
  • Den ansluter till WiFi -inställningarna som definieras av strängarna 'SECRET_SSID' och 'SECRET_PASS', som sparas i en separat fil i min skiss, kallad 'secrets.h'
  • Den ansluter till en MQTT -server i WiFi -nätverket med strängarna 'MQTTSERVER' och 'MQTTPORT' i samma fil.
  • Du kan använda det inkommande MQTT -ämnet 'domus/esp/in' för att utfärda kommandon: 'ON' eller 'OFF' för att slå på eller av lampan, eller ett värde från 0 till 1023 för att ändra ljusstyrkan.
  • Den kommer att rapportera tillståndet om MQTT -ämnena "domus/esp/uit" (PÅ eller AV -status) och "domus/esp/uit/ljusstyrka" (ljusstyrka).

Rekommenderad: