Inhoudsopgave:
Video: 12V LED PWM-dimmer met ESP8266 - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
Terwijl ik probeerde mijn huishouden te verduurzamen, verwisselde ik halogeenlampen voor led-verlichting. Er zijn voldoende alternatieven beschikbaar om elk type gloeilamp te vervangen. Terwijl ik dit deed, kwam ik het volgende probleem tegen: ik had een armatuur die 7 12 volt halogeenlampen gebruikte, elk 10 Watt. Dit licht werd aangestuurd door een dimmer, wat prima werkte. Toen ik de lampen verwisselde voor 12 volt led-lampen van elk 1 Watt, werkte de dimmer slecht: het licht flikkerde en het dimmen enigszins grillig. Dit is een probleem met veel klassieke dimmers: ze hebben een minimaal vermogen, dat ze nodig hebben om te werken.
Dus op basis van mijn domoticasysteem besloot ik deze handmatige dimmer te vervangen door een nieuwe, met als bijkomend voordeel dat hij op afstand te bedienen zou zijn. Ik had al een dimmer gebouwd met behulp van een N-kanaals MOSFET (IRF540), die perfect is voor dit soort dingen: hij kan worden bestuurd door een PWM-signaal en hij is vrijwel onverwoestbaar, met maximale nominale waarden van 100 volt en 33 ampère, hiervoor ruim voldoende (snelle controle: 7 x 1 Watt = 7 Watt, gedeeld door 12 volt geeft een maximale stroom van ongeveer 0,58 Ampère). Ik wil deze dimmer gebruiken voor een ander armatuur met 12 lampen van elk 2 watt, wat maximaal 2 Ampère geeft, dus dat is ook voldoende. Het enige waar je op moet letten is de frequentie van het PWM-signaal, maar de gebruikelijke waarden voor Arduino of ESP8266 (500 Hz of 1kHz) zijn geen probleem.
Stap 1: Stap 1: de componenten
- LED Driver (230 volt AC naar 12 volt DC converter) Voor mijn doel wil ik maximaal 24 Watt gebruiken, dus ben ik begonnen met een LED driver van 12 volt en 2 Ampère. Ik vond er een op een Chinese distributeursite. Deze driver had een nominaal vermogen van 12 volt, 28 watt, dus het was voldoende om het armatuur zelf aan te drijven. Voor uw eigen situatie kunt u, afhankelijk van uw armatuur, een lichtere of zwaardere versie gebruiken.
- IRF540 n-kanaals MOSFET
- Adafruit Huzzah ESP8266 BreakoutOmdat ik WiFi wilde gebruiken en ik absoluut dol ben op de producten van Adafruit, heb ik voor dit bord gekozen: het geeft me een ESP8266 met een handige programmeerpinout, een ingebouwde stroomregelaar en een elegante vormfactor. Het is een beetje overkill voor dit project, maar het maakt het testen en debuggen veel gemakkelijker.
- Op LM2596 gebaseerde DC-DC-converter Om de stroom voor het ESP-bord uit de 12 volt te halen, had ik een regelaar nodig; deze kleine converters zijn zeer efficiënt en erg goedkoop.
-
Rotary Encoder met knopfunctie, met ingebouwd led-licht:
www.sparkfun.com/products/10596
Elke roterende encoder zou het doen, maar ik vond de leuke toegevoegde functie van een ingebouwde LED leuk.
-
Doorzichtige plastic knop
www.sparkfun.com/products/10597
- Weerstand 4k7
- Weerstand 1k
Stap 2: Stap 2: het circuit
Dit is het circuit dat ik heb gebruikt: ik gebruikte pinnen 4 en 5 als ingangen voor de roterende encoder en pin 0 voor de knop. Pin 0 is ook verbonden met de rode led aan boord, dus ik kon de functie van de knop op de codering controleren door naar deze led te kijken.
Pin 16 wordt gebruikt voor de PWM-uitgang en deze heb ik rechtstreeks aangesloten op de groene led op de Sparkfun-encoder. De ESP8266 is 3, 3 volt, en zelfs met 100% heb ik slechts 2, 9 volt output gemeten, dus ik heb hem rechtstreeks aangesloten zonder een serieweerstand. Deze zelfde uitgang gaat naar de Gate van de n-kanaals MOSFET, door middel van een weerstand van 1kOhm. Deze Gate wordt door een weerstand van 4,7 kOhm naar 12 volt getrokken.
Ik heb de DC-DC converter gebruikt om de 12 volt om te zetten naar 5,5 volt, deze is aangesloten op de V+ ingang van de Adafruit breakout. Ik had 3,3 volt kunnen gebruiken en direct kunnen aansluiten, maar dit is iets veiliger.
De 12 V LED-lamp in het circuit is mijn armatuur.
Stap 3: Stap 3: de code
Ik heb de code op GitHub gezet:
Schets voor ESP8266 LED PWM-dimmer
Het is gebaseerd op een idee een andere instructable:
www.instructables.com/id/Arduino-PWM-LED-D…
Maar dit was puur lokale controle, dus ik heb mijn eigen op MQTT gebaseerde domotica-oplossing toegevoegd. Het doet in principe hetzelfde, maar de belangrijkste verschillen zijn:
- standaard aantal PWM-stappen met een Arduino is 255, met de ESP8266 is het 1023 (zoals ik later ontdekte, in een poging om erachter te komen waarom mijn LED-armatuur niet helemaal naar 100% helderheid ging …)
- Ik heb het 'Totempole'-circuit niet gebruikt met de 2 transistors, omdat de PWM toch DC was en prima werkte met de IRF 540.
- Ik heb de 10k pull-up weerstanden niet gebruikt voor de encoder, ik vertrouwde op de ingebouwde pullups van de ESP8266.
- De ESP8266 gebruikt 3.3 volt logica in plaats van 5 volt voor de Arduino, wat geen probleem bleek voor de IRF540
De software heeft de volgende kenmerken:
- door aan de encoder te draaien, dimt het licht omhoog (CW) of omlaag (CCW), van 0 helemaal tot 100%, in 1023 stappen, met enige versnelling in de lagere niveaus.
- Als u op de knop drukt, wordt het licht ingeschakeld wanneer het uit is, met gebruikmaking van het laatst opgeslagen helderheidsniveau, of wordt het uitgeschakeld wanneer het aan is.
- door de knop langer in te drukken terwijl het licht aan is, wordt de huidige helderheid als het standaardniveau opgeslagen.
- Als u de knop langer ingedrukt houdt terwijl het licht uit is, wordt het licht ingeschakeld tot 100% helderheid, zonder het standaardniveau te wijzigen.
- Het zal verbinding maken met de WiFi-instellingen gedefinieerd door de 'SECRET_SSID' en 'SECRET_PASS' strings, die zijn opgeslagen in een apart bestand in mijn schets, genaamd 'secrets.h'
- Het maakt verbinding met een MQTT-server in het WiFi-netwerk, met behulp van de 'MQTTSERVER'- en 'MQTTPORT'-strings in hetzelfde bestand.
- U kunt het inkomende MQTT-onderwerp 'domus/esp/in' gebruiken om opdrachten uit te voeren: 'AAN' of 'UIT' om het licht aan of uit te zetten, of een waarde van 0 tot 1023 om de helderheid te wijzigen.
- Het rapporteert de status van de MQTT-onderwerpen 'domus/esp/uit' (AAN- of UIT-status) en 'domus/esp/uit/brightness' (de helderheidswaarde).
Aanbevolen:
Digitale klok met netwerktijd met behulp van de ESP8266: 4 stappen (met afbeeldingen)
Digitale netwerkklok met de ESP8266: we leren hoe we een schattige kleine digitale klok kunnen bouwen die communiceert met NTP-servers en de netwerk- of internettijd weergeeft. We gebruiken de WeMos D1 mini om verbinding te maken met een wifi-netwerk, de NTP-tijd te verkrijgen en deze weer te geven op een OLED-module. De video hierboven
DIY slimme weegschaal met wekker (met wifi, ESP8266, Arduino IDE en Adafruit.io): 10 stappen (met afbeeldingen)
DIY Slimme Weegschaal Met Wekker (met Wi-Fi, ESP8266, Arduino IDE en Adafruit.io): In mijn vorige project ontwikkelde ik een slimme weegschaal met Wi-Fi. Het kan het gewicht van de gebruiker meten, het lokaal weergeven en naar de cloud sturen. U kunt hier meer informatie over krijgen op onderstaande link: https://www.instructables.com/id/Wi-Fi-Smart-Scale-wi
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino - Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter - RC Helikopter - RC-vliegtuig met Arduino: 5 stappen (met afbeeldingen)
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino | Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter | RC Helikopter | Rc-vliegtuig met Arduino: een Rc-auto besturen | Quadcopter | Drone | RC vliegtuig | RC-boot, we hebben altijd een ontvanger en zender nodig, stel dat we voor RC QUADCOPTER een 6-kanaals zender en ontvanger nodig hebben en dat type TX en RX is te duur, dus we gaan er een maken op onze
Overtuig uzelf om gewoon een 12V-naar-AC-lijnomvormer te gebruiken voor LED-lichtsnoeren in plaats van ze opnieuw te bedraden voor 12V: 3 stappen
Overtuig uzelf om gewoon een 12V-naar-AC-lijnomvormer te gebruiken voor LED-lichtsnoeren in plaats van ze opnieuw te bedraden voor 12V.: Mijn plan was eenvoudig. Ik wilde een door de muur aangedreven LED-lichtsnoer in stukken knippen en vervolgens opnieuw bedraden om 12 volt te laten lopen. Het alternatief was om een omvormer te gebruiken, maar we weten allemaal dat ze vreselijk inefficiënt zijn, toch? Rechts? Of zijn ze?
12v naar USB-adapter 12v naar 5v transformator (ideaal voor auto's): 6 stappen
12v naar USB-adapter 12v naar 5v-transformator (ideaal voor auto's): hier wordt uitgelegd hoe u een 12v-naar-USB (5v)-adapter maakt. Het meest voor de hand liggende gebruik hiervan is voor 12v-autoadapters, maar overal waar je 12v hebt, kun je het gebruiken! Als je 5v nodig hebt voor iets anders dan USB, sla dan gewoon de stappen over het toevoegen van de USB-poorten over