Оглавление:

12 В светодиодный ШИМ-диммер с ESP8266: 3 ступени
12 В светодиодный ШИМ-диммер с ESP8266: 3 ступени

Видео: 12 В светодиодный ШИМ-диммер с ESP8266: 3 ступени

Видео: 12 В светодиодный ШИМ-диммер с ESP8266: 3 ступени
Видео: Три типа ДИММЕРОВ для светодиодных ламп E27. Собираем и тестируем! Диммер-контроллер FL5150MX. 2024, Ноябрь
Anonim
12 В светодиодный ШИМ-диммер с ESP8266
12 В светодиодный ШИМ-диммер с ESP8266

Пытаясь сделать свою семью более экологичной, я менял галогенные лампы на светодиодные. Существует множество альтернативных вариантов замены лампочки любого типа. При этом я столкнулся со следующей проблемой: у меня был осветительный прибор, в котором использовалось 7 галогенных ламп на 12 В, каждая по 10 Вт. Этот свет контролировался диммером, который работал нормально. Когда я заменил лампочки на 12-вольтовые светодиодные лампы, каждая по 1 Вт, диммер работал плохо: свет мигал, а затемнение было несколько неустойчивым. Это проблема многих классических диммеров: у них минимальная мощность, необходимая для работы.

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

Шаг 1: Шаг 1: Компоненты

Шаг 1: компоненты
Шаг 1: компоненты
  1. Драйвер светодиода (преобразователь 230 вольт переменного тока в 12 вольт постоянного тока) Для моей цели я хочу использовать максимум 24 Вт, поэтому я начал с драйвера светодиода на 12 вольт и 2 ампер. Я нашел один на сайте китайского дистрибьютора. Этот драйвер был рассчитан на 12 вольт, 28 ватт, так что этого было достаточно, чтобы управлять прибором самостоятельно. В зависимости от вашей ситуации вы можете использовать более легкую или более тяжелую версию.
  2. IRF540 n-канальный МОП-транзистор
  3. Adafruit Huzzah ESP8266 Breakout Поскольку я хотел использовать Wi-Fi и мне очень нравились продукты Adafruit, я выбрал эту плату: она дает мне ESP8266 с удобной распиновкой для программирования, встроенным регулятором мощности и элегантным форм-фактором. Это немного излишне для этого проекта, но значительно упрощает тестирование и отладку.
  4. DC-DC преобразователь на основе LM2596 Чтобы получить питание для платы ESP от 12 вольт, мне понадобился регулятор; эти небольшие преобразователи очень эффективны и очень дешевы.
  5. Поворотный энкодер с функцией кнопки, со встроенной светодиодной подсветкой:

    www.sparkfun.com/products/10596

    Подойдет любой поворотный энкодер, но мне понравилась хорошая дополнительная функция встроенного светодиода.

  6. Ручка из прозрачного пластика

    www.sparkfun.com/products/10597

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

Шаг 2: Шаг 2: Схема

Шаг 2: схема
Шаг 2: схема

Это схема, которую я использовал: я использовал контакты 4 и 5 в качестве входов для поворотного энкодера и контакт 0 для кнопки. Контакт 0 также подключен к бортовому красному светодиоду, поэтому я мог проверить работу кнопки на кодировке, наблюдая за этим светодиодом.

Контакт 16 используется для выхода ШИМ, и я подключил его напрямую к зеленому светодиоду на кодировщике Sparkfun. ESP8266 составляет 3,3 вольта, и даже при 100% я измерил выходное напряжение 2,9 вольт, поэтому я подключил его напрямую, без последовательного резистора. Тот же самый выход поступает на затвор n-канального MOSFET через резистор 1 кОм. Этот затвор подтягивается до 12 В с помощью резистора 4,7 кОм.

Я использовал преобразователь постоянного тока в постоянный, чтобы преобразовать 12 вольт в 5,5 вольт, он подключен к входу V + коммутационного блока Adafruit. Я мог бы использовать 3,3 вольта и подключить его напрямую, но это немного безопаснее.

Светодиодная лампа 12 В в цепи - мое приспособление.

Шаг 3: Шаг 3: Код

Шаг 3: код
Шаг 3: код

Я выложил код на GitHub:

Эскиз диммера ESP8266 LED PWM

Он основан на другой поучительной идее:

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

Но это было чисто локальное управление, поэтому я добавил собственное решение для домашней автоматизации на основе MQTT. По сути, он делает то же самое, но основные отличия заключаются в следующем:

  • по умолчанию количество шагов ШИМ для Arduino равно 255, для ESP8266 - 1023 (как я узнал позже, все время пытаясь выяснить, почему мой светодиодный светильник не поднялся до 100% яркости …)
  • Я не использовал схему Totempole с двумя транзисторами, так как ШИМ в любом случае был постоянным током и отлично работал с IRF 540.
  • Подтягивающие резисторы на 10 кОм для энкодера я не использовал, доверял встроенным подтяжкам ESP8266.
  • ESP8266 использует логику 3,3 В вместо 5 В для Arduino, что оказалось без проблем для IRF540.

Программа имеет следующие особенности:

  • при повороте энкодера индикатор будет тускнеть вверх (CW) или вниз (CCW) от 0 до 100% за 1023 шага с некоторым ускорением на нижних уровнях.
  • нажатие кнопки включит свет, когда он выключен, с использованием последнего сохраненного уровня яркости или выключит его, когда он включен.
  • нажатие кнопки на более длительное время при включенном свете сохранит текущую яркость в качестве уровня по умолчанию.
  • нажатие кнопки на более длительное время при выключенном свете включит свет до 100% яркости без изменения уровня по умолчанию.
  • Он будет подключаться к настройкам WiFi, определенным строками «SECRET_SSID» и «SECRET_PASS», которые сохранены в моем скетче в отдельном файле под названием «secrets.h».
  • Он подключится к серверу MQTT в сети Wi-Fi, используя строки «MQTTSERVER» и «MQTTPORT» в том же файле.
  • Вы можете использовать входящую тему MQTT «domus / esp / in» для выполнения команд: «ON» или «OFF», чтобы включить или выключить свет, или значение от 0 до 1023, чтобы изменить яркость.
  • Он сообщит о состоянии тем MQTT «domus / esp / uit» (статус ON или OFF) и «domus / esp / uit / яркость» (значение яркости).

Рекомендуемые: