Съдържание:

12V LED ШИМ димер с ESP8266: 3 стъпки
12V LED ШИМ димер с ESP8266: 3 стъпки

Видео: 12V LED ШИМ димер с ESP8266: 3 стъпки

Видео: 12V LED ШИМ димер с ESP8266: 3 стъпки
Видео: Уроки Ардуино #11 - плавное управление нагрузкой, ШИМ сигнал 2024, Юли
Anonim
12V LED ШИМ димер с ESP8266
12V LED ШИМ димер с ESP8266

Докато се опитвах да направя домакинството си по -устойчиво, разменях халогенни крушки за LED светлини. Налични са много алтернативи, за да замените всеки тип крушка. Докато правех това, се натъкнах на следния проблем: Имах осветително тяло, което използваше 7 12 -волтови халогенни крушки, всяка по 10 вата. Тази светлина се контролира от димер, който работи добре. Когато смених крушките с 12 -волтови LED светлини, всеки по 1 ват, димерът работеше зле: светлината мигаше, а затъмняването беше малко неравномерно. Това е проблем с много класически димери: те имат минимална мощност, от която се нуждаят, за да работят.

Така че, въз основа на моята система за домотика, реших да заменя този ръчен димер с нов, който би имал допълнителното предимство, че може да се управлява дистанционно. Вече бях изградил димер с помощта на N-канал MOSFET (IRF540), който е идеален за такива неща: може да се управлява чрез ШИМ сигнал и е практически неразрушим, с максимални стойности от 100 волта и 33 ампера, достатъчно достатъчно за тази цел (бърза проверка: 7 x 1 вата = 7 вата, разделена на 12 волта дава максимален ток от около.58 ампера). Искам да използвам този димер за друго тяло, което има 12 крушки, всяка по 2 вата, което дава максимум 2 ампера, така че това също е достатъчно. Единственото нещо, за което трябва да внимавате, е честотата на PWM сигнала, но обичайните стойности за Arduino или ESP8266 (500 Hz или 1kHz) не са проблем.

Стъпка 1: Стъпка 1: Компонентите

Стъпка 1: Компонентите
Стъпка 1: Компонентите
  1. LED драйвер (230 волта AC към 12 волта DC преобразувател) За моята цел искам да използвам максимум 24 вата, затова започнах с LED драйвер от 12 волта и 2 ампера. Намерих такъв в китайски сайт за дистрибутор. Този драйвер беше оценен на 12 волта, 28 вата, така че беше достатъчно да задвижва самото тяло. За вашата собствена ситуация можете да използвате по -лека или по -тежка версия, в зависимост от вашето тяло.
  2. IRF540 n-канал MOSFET
  3. Adafruit Huzzah ESP8266 Breakout Понеже исках да използвам WiFi и абсолютно обичам продуктите на Adafruit, избрах тази платка: тя ми дава ESP8266 с удобно програмиране, вграден регулатор на мощността и елегантен форм-фактор. Това е малко прекалено много за този проект, но прави тестването и отстраняването на грешки много по -лесно.
  4. LM2596 базиран DC-DC преобразувател За да извлека мощността за ESP платката от 12 волта, имах нужда от регулатор; тези малки преобразуватели са много ефективни и много евтини.
  5. Ротационен енкодер с функция на бутон, с вградена LED светлина:

    www.sparkfun.com/products/10596

    Всеки въртящ се енкодер би бил подходящ, но ми хареса приятната добавена функция на вградения светодиод.

  6. Прозрачно пластмасово копче

    www.sparkfun.com/products/10597

  7. Резистор 4k7
  8. Резистор 1k

Стъпка 2: Стъпка 2: Веригата

Стъпка 2: Веригата
Стъпка 2: Веригата

Това е схемата, която използвах: Използвах щифтове 4 и 5 като входове за въртящия се енкодер и щифт 0 за бутона. Пин 0 също е свързан към вградения червен светодиод, така че мога да проверя функцията на бутона на кодирането, като гледам този светодиод.

Pin 16 се използва за PWM изход и аз го свързах директно към зеления светодиод на енкодера Sparkfun. ESP8266 е 3, 3 волта и дори със 100%измерих само 2, 9 волта изход, така че го свързах директно без последователен резистор. Същият изход отива към портата на n-каналния MOSFET чрез резистор 1 kOhm, който се издърпва високо до 12 волта от резистор от 4,7 kOhm.

Използвах DC-DC преобразувателя, за да преобразувам 12 волта в 5,5 волта, това е свързано с V+ входа на пробива Adafruit. Можех да използвам 3,3 волта и да го свържа директно, но това е малко по -безопасно.

12 V LED лампата във веригата е моето тяло.

Стъпка 3: Стъпка 3: Кодът

Стъпка 3: Кодът
Стъпка 3: Кодът

Поставих кода в GitHub:

Скица за ESP8266 LED ШИМ димер

Той се основава на идея, друга инструкция:

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

Но това беше чисто местен контрол, затова добавих моето собствено решение за домотика, базирано на MQTT. По принцип прави едно и също нещо, но основните разлики са:

  • броят на стъпките по ШИМ по подразбиране с Arduino е 255, с ESP8266 е 1023 (както разбрах по -късно, изцяло се опитвам да разбера защо светодиодното ми тяло не се е покачило до 100% яркост …)
  • Не използвах схемата „Totempole“с 2 -те транзистора, тъй като PWM така или иначе беше DC и работех добре с IRF 540.
  • Не използвах 10k издърпващи се резистори за енкодера, доверих се на вградените издърпвания на ESP8266.
  • ESP8266 използва 3,3 волта логика вместо 5 волта за Arduino, което не се оказа проблем за IRF540

Софтуерът има следните функции:

  • завъртането на енкодера ще намали светлината нагоре (CW) или надолу (CCW), от 0 до 100%, на 1023 стъпки, като някои ще се ускорят на по -ниските нива.
  • натискането на бутона ще включи светлината, когато е изключена, използвайки последното запазено ниво на яркост, или ще я изключи, когато е включена.
  • натискането на бутона за по -дълго време, докато светлината е включена, ще запази текущата яркост като ниво по подразбиране.
  • натискането на бутона за по -дълго време, докато светлината е изключена, ще включи светлината до 100% яркост, без да променя нивото по подразбиране.
  • Той ще се свърже с настройките за WiFi, определени от низовете „SECRET_SSID“и „SECRET_PASS“, които са записани в отделен файл в моята скица, наречен „secrets.h“
  • Той ще се свърже с MQTT сървър в WiFi мрежата, като използва низовете „MQTTSERVER“и „MQTTPORT“в същия файл.
  • Можете да използвате входящата тема MQTT „domus/esp/in“, за да издавате команди: „ON“или „OFF“, за да включите или изключите светлината, или стойност от 0 до 1023, за да промените яркостта.
  • Той ще докладва състоянието на темите на MQTT „domus/esp/uit“(състояние ON или OFF) и „domus/esp/uit/brightness“(стойността на яркостта).

Препоръчано: