Диммер ардуино. Диммер на Arduino: как сделать плавную регулировку яркости света своими руками

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

Что такое диммер на Arduino и как он работает

Диммер на Arduino — это устройство для плавной регулировки яркости света, построенное на базе микроконтроллера Arduino. Основные компоненты такого диммера:

  • Плата Arduino (например, Arduino Nano)
  • Симистор (например, BTA16 или BT139)
  • Оптопара (например, MOC3021)
  • Детектор нуля на оптроне (например, PC817)
  • Резисторы, диодный мост и другие вспомогательные компоненты

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

  1. Детектор нуля отслеживает моменты перехода сетевого напряжения через ноль
  2. Arduino получает сигналы от детектора нуля и формирует управляющие импульсы
  3. Оптопара гальванически развязывает цепи Arduino и силовую часть
  4. Симистор открывается на определенное время в каждом полупериоде сетевого напряжения
  5. Изменяя время открытия симистора, Arduino регулирует эффективное напряжение на нагрузке

Таким образом, микроконтроллер Arduino позволяет точно управлять моментом и длительностью открытия симистора, обеспечивая плавную регулировку яркости света.


Схема диммера на Arduino

Рассмотрим типовую схему диммера на Arduino:

  • Детектор нуля на оптроне PC817 подключается к цифровому входу Arduino
  • Выход Arduino через резистор подключается к управляющему входу оптопары MOC3021
  • Выход оптопары управляет затвором симистора BTA16
  • Симистор включается последовательно с нагрузкой в разрыв фазного провода
  • Нулевой провод подключается напрямую к нагрузке

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

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

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

  1. Обработка прерываний от детектора нуля
  2. Формирование управляющих импульсов для симистора
  3. Реализация алгоритма плавного изменения яркости
  4. Обработка команд управления (например, от потенциометра)

Ключевые моменты в программировании диммера на Arduino:

  • Использование аппаратных прерываний для точной синхронизации с сетью
  • Применение таймеров для формирования импульсов управления
  • Реализация пропорционально-интегрального регулятора для плавности
  • Использование ШИМ для управления яркостью RGB-светодиодов

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


Преимущества самодельного диммера на Arduino

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

  • Гибкая настройка под конкретные задачи
  • Возможность управления по различным протоколам (Bluetooth, Wi-Fi и др.)
  • Интеграция в системы «умного дома»
  • Реализация сложных алгоритмов управления освещением
  • Низкая стоимость при хороших характеристиках
  • Возможность модернизации и расширения функционала

Самодельный диммер на Arduino — отличный выбор для радиолюбителей и энтузиастов домашней автоматизации.

Сборка диммера на Arduino своими руками

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

  • Arduino Nano или другая совместимая плата
  • Симистор BTA16 или аналогичный
  • Оптопара MOC3021
  • Оптрон PC817
  • Диодный мост на 1А
  • Резисторы: 47 кОм, 360 Ом, 180 Ом
  • Конденсатор 0.1 мкФ
  • Клеммники, провода, корпус

Порядок сборки диммера на Arduino:

  1. Собрать схему на макетной плате и проверить работоспособность
  2. Разработать печатную плату в САПР или использовать готовую
  3. Изготовить печатную плату методом ЛУТ или заказать на производстве
  4. Припаять компоненты к печатной плате
  5. Установить плату в подходящий корпус
  6. Подключить выводы для нагрузки и сетевого питания

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


Применение диммера на Arduino

Самодельный диммер на Arduino может найти широкое применение в быту и небольших проектах автоматизации:

  • Управление яркостью светодиодных и галогенных ламп
  • Регулировка мощности нагревательных элементов
  • Управление скоростью вентиляторов
  • Создание световых эффектов и подсветки
  • Автоматизация освещения в умном доме
  • Дистанционное управление освещением со смартфона

Гибкость платформы Arduino позволяет легко адаптировать диммер под различные задачи и интегрировать его в более сложные системы.

Меры безопасности при работе с диммером на Arduino

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

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

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



Простой диммер на Ардуино

Диммер на базе Arduino – это одно из сотен простых и интересных устройств, с помощью которого можно плавно изменять сетевое напряжение от 0 до номинального значения. Каждый пользователь Arduino найдёт применение столь полезной самоделке, а опыт, полученный во время сборки своими руками, пополнит багаж знаний.

Содержание

  • 1 Схема и принцип её работы
  • 2 Печатная плата и детали сборки
  • 3 Алгоритм управления Arduino
  • 4 Область применения диммера на Arduino

Схема и принцип её работы

Как и большинство недорогих диммеров, данная схема работает за счёт фазовой регулировки напряжения, что достигается путем принудительного открывания силового ключа – симистора. Принцип действия схемы следующий. Arduino на программном уровне формирует импульсы, частота которых подстраивается сопротивлением потенциометра. Управляющий импульс с вывода P1 проходит через оптопару MOC3021 и поступает на управляющий электрод симистора. Он открывается и пропускает ток до перехода полуволны сетевого напряжения через ноль, после чего закрывается. Затем приходит следующий импульс и цикл повторяется. Благодаря сдвигу управляющих импульсов, в нагрузке формируется обрезанная по фронту часть синусоиды.

Чтобы симистор открывался в соответствии с заданным алгоритмом, частота следования импульсов должна быть засинхронизирована с напряжением сети 220 В. Другими словами Arduino должен знать, в какой момент синусоида сетевого напряжения проходит через ноль. Для этого в диммере на элементах R3, R4 и PC814 реализована цепь обратной связи, сигнал с которой поступает на вывод P2 и анализируется микроконтроллером. В цепь детектора нуля добавлен резистор R5 на 10 кОм, который нужен для подпитки выходного транзистора оптопары.

Один силовой вывод симистора подключается к фазному проводу, а ко второму – подключается нагрузка. Нулевой провод сети 220 В напрямую следует от клеммника J1 к J2, а затем к нагрузке. Применение оптопар необходимо для гальванической развязки силовой и низковольтной части схемы диммера. Потенциометр (на схеме не показан) средним выводом подключается на любой аналоговый вход Arduino, а двумя крайними – на +5 В и «общий».

Печатная плата и детали сборки

Минимум радиоэлементов позволяет сконструировать одностороннюю печатную плату, размер которой не превышает 20х35 мм. Как видно из рисунка на ней отсутствует переменный резистор, чтобы радиолюбитель мог самостоятельно подобрать потенциометр подходящего форм-фактора и определить место его крепления к корпусу готового диммера. Подключение к Arduino осуществляется через провода, которые запаивают в соответствующие отверстия на плате.

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

  1. Симистор BT136-600D, способный выдерживать обратное напряжение до 600 В и пропускать в нагрузку ток до 4 А (естественно с предварительным монтажом на радиатор). В схеме можно применить симистор и с большей нагрузочной способностью. Главное – обеспечить отвод тепла от его корпуса и правильно подобрать ток на управляющий электрод (справочный параметр). При подключении к нагрузке электроприбора большой мощности ширину печатных проводников в силовой части схемы необходимо будет пересчитать. Как вариант, силовые дорожки можно продублировать с другой стороны платы.
  2. Оптопара MOC3021 с симисторным выходом.
  3. Оптопара PC814 с транзисторным выходом.
  4. Резисторы номиналом 1 кОм, 220 Ом, 10 кОм мощностью 0,25 Вт и 2 резистора на 51 кОм мощностью 0,5 Вт.
  5. Переменный резистор на 10 кОм.
  6. Клеммные колодки – 2 шт., с двумя разъёмами и шагом 5 мм.

Все необходимые файлы по проекту находятся в ZIP-архиве: dimmer-arduino.zip

Алгоритм управления Arduino

Программа управления симистором создана на базе таймера Timer1 и библиотеки Cyber.Lib, благодаря чему отсутствует влияние на работу других программных кодов. Принцип её действия следующий. При переходе сетевого напряжения через ноль «снизу вверх» таймер перенастраивается на обратный переход «сверху вниз» и начинает отсчёт времени в соответствии со значением переменной «Dimmer». В момент срабатывания таймера Arduino формирует управляющий импульс и симистор открывается. При следующем переходе через ноль симистор перестаёт пропускать ток и ожидает очередное срабатывание таймера. И так 50 раз в секунду. За регулировку задержки на открывание симистора отвечает переменная «Dimmer». Она считывает и обрабатывает сигнал с потенциометра и может принимать значение от 0 до 255.

Область применения диммера на Arduino

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

  • управлять любыми видами активной нагрузки (температурой нагрева паяльника, проточного водонагревателя и т. д.) с точным удержанием заданного параметра;
  • одновременно выполнять несколько функций. Например, обеспечивать плавное включение утром (отключение вечером) света, а также контролировать температуру и влажность террариума.

Увидеть каким образом изменяется напряжение в нагрузке можно с помощью осциллографа. Для этого к выходным клеммам диммера припаивают резистивный делитель, благодаря которому сигнал в контрольной точке должен уменьшиться примерно в 20 раз. После этого к делителю подсоединяют щупы осциллографа и подают питание на схему. Изменяя положение ручки потенциометра, на экране осциллографа можно наблюдать насколько плавно Arduino управляет симистором и присутствуют ли при этом высокочастотные помехи.

Авторство вышеприведенных материалов принадлежит Youtube каналу AlexGyver.

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

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

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


  • Ардуино Нано — 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качиваний: 184)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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


Arduino TRIAC диммер AC bluetooth

INTRO

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


Una publicación compartida de ELECTRONOOBS®️ (@electronoobs) el

Полный список деталей см. здесь:

ЧАСТЬ 1 Обнаружение пересечения нуля

Первое, что нужно сделать, это проанализировать переменное напряжение. Я подключил осциллограф к сетевому входу дома. Как вы можете видеть ниже, у нас есть синусоида 310 вольт от пика до пика или 220 В RMS. Частота обычно составляет от 50 до 60 Гц.

У нас есть положительная часть и отрицательная, поэтому будет пересечение нуля, поэтому нам нужно будет обнаружить это пересечение 0. Используя компонент под названием TRIAC, мы будем контролировать количество времени, в течение которого это питание включено и выключено. Давайте посмотрим, как работает этот TRIAC.


Все мы знаем диоды. Поместите всего один диод на сигнал переменного тока, и у нас получится двухполупериодный выпрямитель. Только с одним диодом в этом случае у нас будет только положительная часть сигнала переменного тока, как вы можете видеть ниже, поскольку диод не пропускает отрицательную часть. Но что, если бы мы могли активировать или деактивировать этот диод. Есть компонент, который может сделать это, и он называется THYTISTOR, который в основном представляет собой управляемый диод, который будет активирован, когда затвор получает триггер тока, и продолжает проводить ток, пока напряжение на устройстве не меняется на обратное.


Итак, здесь у нас есть сигнал переменного тока ниже. Отрицательная часть не пройдет, так как мы используем диод. Но с положительной стороны, если мы не переключим ТИРИСТОРА, не будет и положительной части. Итак, допустим, что ровно в среднем положении мы импульсом активируем ворота ТИТИСТОРА, теперь пускаем оставшуюся часть положительной стороны волны переменного тока. Итак, теперь у нас есть только половина положительной волны, поэтому мы отрегулировали мощность.
Но если мы хотим сделать это как с положительной, так и с отрицательной стороной, мы должны использовать два ТИРИСТОРА в встречно-параллельной конфигурации. Один будет контролировать положительную сторону, а другой — отрицательную. Есть компонент, который дозирует это, называется TRIAC.


TRIAC останется деактивированным, пока не получит импульс на своем затворе. После получения он останется активным до тех пор, пока основной вход не изменит свою полярность.

Итак, вот что мы собираемся сделать. Я буду использовать симистор BTA16 для контроля напряжения переменного тока. Первое, что нужно сделать, это обнаружить пересечение нуля, поскольку наш импульс должен быть в фазе с переменным напряжением. Итак, мы должны определить, когда напряжение переходит с положительного на отрицательное или с отрицательного на положительное, и синхронизировать наш импульс с этим, чтобы он всегда срабатывал в одном и том же месте. Для этого я буду использовать мостовой выпрямитель.

Это даст мне на выходе как положительную, так и отрицательную кривые волны переменного тока, и я делаю это, поскольку Arduino не может работать с отрицательными значениями. Вот ниже на моем осциллографе у меня есть вход (зеленый) и выход (желтый) от мостового выпрямителя.


Схема пересечения нуля

Я также добавлю два резистора по 47 кОм для ограничения тока. Теперь я хочу отделить сторону высокого напряжения от стороны низкого напряжения, которая в данном случае будет микроконтроллером Arduino. Для этого я буду использовать оптопару EL317. Таким образом, нет прямой связи между высоким напряжением 220 В и 5 В Arduino.
Добавляю подтягивающий и подтягивающий резисторы как на схеме ниже, которую кстати вы можете скачать по ссылке ниже и теперь к выходу подключаю осциллограф.


Как и ожидалось, у меня есть какая-то трапециевидная волна с размахом 5 вольт. Теперь я прочитал это с помощью Arduino, и я буду создавать прерывание каждый раз, когда обнаружу эти низкие значения, и это будет нашим пересечением нуля. Поскольку мы использовали мостовой выпрямитель, у нас будет пересечение нуля как для восходящей, так и для падающей частей волны переменного тока.


Теперь, чтобы управлять затвором симистора, мы будем использовать диодный переключатель переменного тока или лучше называть его DI AC или diac. Диак — это очень полезное устройство, которое можно использовать для запуска симисторов из-за характеристик его отрицательного сопротивления, которые позволяют ему быстро включаться при достижении определенного уровня приложенного напряжения.

ЧАСТЬ 2 Схема — потенциометр

Итак, это будет наша последняя схема. Считываем переход через нуль с мостовым выпрямителем и оптопарой. Затем мы создаем импульс запуска, применяемый к оптоизолированному DIAC через этот резистор и светодиод. Я говорю «оптоизолированный», потому что, опять же, эта ИС имеет управление диодом внутри, поэтому мы разделяем 5 В от Arduino и 220 В, подаваемые на симистор.


Библиотека диммеров для Arduino — документация Dimmer 1.

0 Библиотека диммера для 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 с использованием лампы переменного тока и установкой минимального уровня мощности (полезно для диммируемых светодиодных или компактных люминесцентных ламп).
  • 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 set (uint8_t значение , bool на )

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

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

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

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

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

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

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

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