Arduino Dimmer: управление освещением с использованием ШИМ и симистора

Как создать диммер на Arduino для плавного управления яркостью света. Какие компоненты нужны для сборки схемы диммера. Как подключить симистор и оптопару к Arduino для управления нагрузкой переменного тока. Как реализовать управление диммером со смартфона по Bluetooth.

Содержание

Принцип работы диммера на Arduino

Диммер на Arduino позволяет плавно регулировать яркость освещения путем изменения мощности, подаваемой на лампу. Основной принцип работы такого диммера заключается в следующем:

  • Arduino генерирует ШИМ-сигнал для управления симистором
  • Симистор открывается на определенное время в каждом полупериоде сетевого напряжения
  • Чем дольше открыт симистор, тем больше мощности подается на лампу
  • Для синхронизации с сетью используется схема детектора нуля

Таким образом, изменяя скважность ШИМ-сигнала от Arduino, можно плавно регулировать яркость лампы от 0 до 100%.

Необходимые компоненты для сборки диммера

Для создания диммера на Arduino потребуются следующие основные компоненты:


  • Arduino Nano или другая плата Arduino
  • Симистор BTA16 или BT139
  • Оптопара с симисторным выходом MOC3020 или MOC3021
  • Оптрон EL817 или PC817 для детектора нуля
  • Диодный мост
  • Резисторы: 47 кОм, 1 кОм, 100 Ом, 200 Ом
  • Bluetooth модуль HC-05 для беспроводного управления

Дополнительно может потребоваться радиатор для симистора при работе с большими нагрузками.

Схема подключения компонентов диммера

Основные элементы схемы диммера и их подключение:

  1. Детектор нуля на оптроне подключается к цифровому входу Arduino
  2. ШИМ-выход Arduino через резистор подается на светодиод оптопары
  3. Выход оптопары управляет затвором симистора
  4. Симистор включается в разрыв фазного провода нагрузки
  5. Bluetooth-модуль подключается к UART-пинам Arduino

Важно обеспечить гальваническую развязку низковольтной и высоковольтной части схемы с помощью оптронов.

Программирование Arduino для управления диммером

Основные этапы программирования Arduino для работы диммера:

  1. Инициализация прерывания по детектору нуля
  2. Настройка таймера для генерации ШИМ
  3. Реализация функции изменения яркости
  4. Обработка команд от Bluetooth-модуля

Ключевой момент — синхронизация ШИМ-сигнала с переходом сетевого напряжения через ноль для устранения помех.


Управление диммером со смартфона по Bluetooth

Для удобного управления диммером со смартфона можно использовать Bluetooth-соединение:

  • На смартфон устанавливается приложение для управления
  • Приложение подключается к Bluetooth-модулю HC-05
  • Команды передаются в виде простых текстовых сообщений
  • Arduino принимает команды и изменяет яркость

Это позволяет регулировать освещение дистанционно без использования дополнительных пультов.

Особенности работы с различными типами ламп

При использовании диммера важно учитывать особенности работы с разными типами ламп:

  • Лампы накаливания — работают стабильно во всем диапазоне яркости
  • Галогенные лампы — могут мерцать на малой яркости
  • Светодиодные лампы — требуют специальных диммируемых моделей
  • Люминесцентные лампы — как правило, не поддерживают диммирование

Для светодиодных и энергосберегающих ламп может потребоваться установка минимального уровня яркости для стабильной работы.

Меры безопасности при работе с сетевым напряжением

При сборке и использовании диммера необходимо соблюдать следующие меры безопасности:


  • Использовать качественные изолированные компоненты
  • Обеспечить надежную изоляцию всех соединений
  • Применять предохранители для защиты от перегрузки
  • Не прикасаться к схеме при подключенном напряжении
  • Проводить настройку и отладку на безопасном низком напряжении

Работа с сетевым напряжением требует соответствующей квалификации и осторожности.

Как устранить нежелательное свечение лампы при выключенном Arduino?

Проблема нежелательного свечения лампы при выключенном Arduino может возникать из-за особенностей работы симистора. Для ее устранения можно применить следующие методы:

  1. Использовать симистор с большим током удержания
  2. Добавить снабберную RC-цепочку параллельно симистору
  3. Применить оптопару с детектором нуля
  4. Использовать дополнительное реле для полного отключения нагрузки

Наиболее эффективным решением является комбинация снабберной цепи и оптопары с детектором нуля.

Какие преимущества дает использование библиотеки Dimmer для Arduino?

Библиотека Dimmer предоставляет ряд удобных функций для работы с диммером:


  • Простая инициализация и настройка параметров диммера
  • Плавное изменение яркости с заданной скоростью
  • Поддержка нескольких независимых каналов диммирования
  • Установка минимального уровня яркости для LED-ламп
  • Различные режимы работы (нормальный, плавный, счетный)

Использование готовой библиотеки позволяет сократить время разработки и повысить надежность работы диммера.

Как реализовать многоканальный диммер на Arduino?

Для создания многоканального диммера на Arduino можно использовать следующий подход:

  1. Подключить несколько симисторов к разным выходам Arduino
  2. Использовать один общий детектор нуля для синхронизации
  3. В прерывании по детектору нуля формировать ШИМ для всех каналов
  4. Реализовать независимое управление яркостью каждого канала

Библиотека Dimmer позволяет легко создавать многоканальные диммеры, поддерживая до 8 независимых каналов на одном Arduino.

Какие альтернативные методы управления диммером можно использовать?

Помимо управления по Bluetooth, для диммера на Arduino можно реализовать и другие способы управления:


  • Через Wi-Fi с использованием модуля ESP8266
  • По ИК-каналу с помощью стандартного пульта ДУ
  • Голосовое управление через модуль распознавания речи
  • Сенсорное управление с помощью емкостных датчиков
  • Автоматическое управление по датчику освещенности

Выбор метода управления зависит от конкретного применения и требований к удобству использования.

Как обеспечить плавное включение и выключение света?

Для реализации эффекта плавного включения и выключения света в диммере на Arduino можно использовать следующие приемы:

  1. Постепенное увеличение/уменьшение яркости с заданным шагом
  2. Использование нелинейной характеристики изменения яркости
  3. Применение S-образной кривой разгона/торможения
  4. Настройка времени перехода между уровнями яркости

Библиотека Dimmer предоставляет встроенные функции для реализации плавного изменения яркости с настраиваемыми параметрами.


Как сделать простой диммер для управления светом со смартфона на Ардуино

На модуле Ардуино Нано можно построить простой диммер, при помощи которого можно на расстоянии управлять не только включением и выключением света, но и его яркостью. Все управление производится с вашего смартфона без каких-либо пультов управления. Схема несложная и вполне повторима даже начинающим радиолюбителем.

Понадобятся следующие детали


  • Ардуино Нано — http://ali.pub/5idze0
  • Модуль Bluetooth HC-05 — http://ali.pub/5idzbv
  • Симистор BTA16 или BT139 — http://ali.pub/5idzai
  • Оптрон EL817 или PC817 — http://ali.pub/5idzo4
  • Оптопара с симисторным выходом MOC3020 или MOC3021 — http://ali.pub/5idzgx
  • Диодный мост — http://ali.pub/5idzr8
  • Резисторы 47 кОм, 1 кОм, 100 Ом, 200 R — http://ali.pub/5h6ouv

Схема и прошивки


По левую часть Ардуино собран детектор нуля. Он дает сигнал модулю когда синусоидальная волна проходит нулевую отметку, переходя из положительной в отрицательную.
По правую сторону собран симисторный ключ с гальванической развязкой на оптопаре. Также подключен блютуз модуль к Ардуино.
Прошивка для Ардуино и приложение для телефона в архиве:

downloads.zip [3.6 Mb] (cкачиваний: 166)

Приложение нужно предварительно скопировать в память телефона любым удобным для вас способом.

Делаем простой диммер на Arduino Nano

Первым делом запрограммируем Ардуино Нано. Зальем прошивку так сказать.
Ардуино устанавливаем на плату при помощи колодок. Это дает возможность в любой момент его снять с платы.

В плате сверлим отверстия и устанавливаем диодный мост.

Устанавливаем оптрон и резисторы в цепи детектора нуля.

Устанавливаем и припаиваем колодку блютуз модуля.

Вид пайки снизу. Длинные проводники выполнены монтажным проводом.

Запаиваем оптопару с симистором.

Берем блютуз модуль.

Устанавливаем его в колодку на плате.

Подключаем вилку с проводом и нагрузку в виде лампы накаливания.

Ардуино будем питать от отдельного блока 5 В. Подключим его через микро USB.

На этом все, диммер готов к работе.

Проверка диммера

Устанавливаем приложение на смартфон.

Подключаемся по блютуз к диммеру.

Теперь можно управлять яркостью света.

Двигаем ползунок в приложении и яркость лампы увеличивается от нуля.

И до полной яркости.


Смотрите видео


Dimmer Library для Arduino — документация по Dimmer 1.0

Dimmer Library для Arduino — документация по Dimmer 1.0

Это программная библиотека Arduino для управления нагрузками переменного тока с использованием симисторов и схемы детектора пересечения нуля. Методы библиотеки можно использовать для независимого управления мощностью нагрузки переменного тока для нескольких симисторов с использованием одной общей схемы перехода через нуль.

  • Исходный код: https://github.com/circuitar/Dimmer
  • Документация: http://dimmer.readthedocs.org/
  • Эталонная плата
  • : Triac Nanoshield и Zero Cross Nanoshield от Circuitar

Существуют различные способы реализации схем детектора пересечения нуля. Эта библиотека основана на вышеприведенной реализации, но ее можно легко адаптировать для использования любого типа схемы детектора пересечения нуля.

Для установки просто нажмите Загрузите ZIP и установите его, используя Sketch > Include Library. .. > Add .ZIP Library в Arduino IDE.

Приведены следующие примеры:

  • Fade Arduino Пример Fade с использованием лампы переменного тока.
  • Пример FadeMinimum Arduino Fade с использованием лампы переменного тока и установкой минимального уровня мощности (полезно для диммируемых светодиодных ламп или ламп CFL).
  • RandomLamps Управление 3 диммируемыми лампами со случайными значениями (можно увеличить до 10 ламп).
  • WaveLamps Управление 3 диммируемыми лампами в форме волны (можно увеличить до 10 ламп).
  • CountMode Управляйте нагрузками переменного тока с высокой и низкой реакцией, не вводя шум, используя режим счета.
класс Диммер

Канал диммера.

Этот объект может управлять мощностью, подаваемой на нагрузку переменного тока, с помощью симистора и нулевого перекрестного замыкания. Общая схема пересечения нуля используется всеми экземплярами, но каждый экземпляр управляет отдельным симистором.

Общественные функции

Диммер (uint8_t контакт , uint8_t режим = DIMMER_NORMAL, двойной Время разгона = 1,5, uint8_t частота = 60)

Конструктор.

См.
RampTime COUNT_MODE: подсчитывает волны переменного тока и время от времени применяет полные полупериоды.
См.
setRampTime().
См.
начало()
Параметры
  • пин

    пин, активирующий симистор.

  • режим

    режим работы. Возможные режимы: NORMAL_MODE: использует таймер для подачи на лампу только процента мощности переменного тока каждые полпериода. RAMP_MODE: То же, что и в обычном режиме, но при изменении уровней применяется эффект рампы.

Параметры
Параметры
void begin (значение uint8_t = 0, bool на = true)

Инициализирует модуль.

Инициализирует замыкание через ноль и прерывания Таймера 2. Установите состояние и значение лампы в соответствии с первоначальными настройками.

Параметры
  • значение

    начальная яркость лампы, в процентах. Минимум 0, максимум 100, по умолчанию 0.

  • на

    исходное состояние лампы. Истина, если лампа включена, или ложь, если она выключена. Лампа включена по умолчанию.

пустота выкл ()

Выключает лампу.

пустота на ()

Включает лампу.

пустота переключить ()

Включение/выключение лампы.

uint8_t получить значение ()

Получает текущее значение (яркость) лампы.

Возврат
текущее значение лампы, от 0 до 100.
логическое значение getState ()

Получает текущее состояние лампы.

Возврат
текущее состояние лампы. ВКЛ или ВЫКЛ.
void набор (uint8_t значение )

Устанавливает значение лампы.

Параметры
void установить (uint8_t значение , логическое значение на )

Устанавливает значение и состояние лампы.

Параметры
void setMinimum (uint8_t значение )

Устанавливает минимально допустимый уровень мощности.

Это полезно для управления нагрузками, которые нельзя диммировать до очень низкого уровня, например диммируемыми светодиодами или КЛЛ-лампами.

Параметры
void setRampTime (двойной RampTime )

Устанавливает время, необходимое для увеличения значения от 0% до 100% в RAMP_MODE, в секундах.

Параметры

Эта документация была создана с использованием ArduinoDocs.

Читать документы v: последний

Версии
последние
Загрузки
пдф
htmlzip
epub
При прочтении документов
Дом проекта
Строит

Бесплатный хостинг документов предоставляется Read the Docs.

AC PWM Диммер с Arduino, но свет горит, даже когда Arduino выключен

спросил

Изменено 1 год, 1 месяц назад

Просмотрено 169 раз

\$\начало группы\$

Я пытаюсь собрать диммер переменного тока, используя микроконтроллер Arduino Uno.
Я протестировал несколько вариантов и пришел к схеме ниже, которая отлично работает:

Единственная проблема с этой схемой — размещение света. Лампочка горит даже при выключенном Arduino Uno и потом, после подключения Arduino, диммер работает нормально и свет включается и выключается как надо.
Я пытаюсь найти способ сделать так, чтобы свет не включался до тех пор, пока микроконтроллер не будет подключен и готов к работе, но я не совсем уверен, как это сделать.
Пробовал поставить переключатель между светом и стоком IRF630 MOSFET, но он не дает особого контроля над процессом диммирования.

Буду признателен за любую помощь в решении этой проблемы.

  • ШИМ
  • диммер

\$\конечная группа\$

\$\начало группы\$

При активации оптопара отключает MOSFET, в противном случае включается через подтягивающий резистор 100k.

Поэтому, когда ардуино выключено, оптопара выключена, и MOSFET включится, и загорится свет.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *