Световой диммер управляемый Arduino
Переключение нагрузки переменного тока с использованием Arduino довольно просто: используется либо механическое реле, либо твердотельное реле с оптически изолированным симистором. Становится немного сложнее, если необходимо уменьшать яркость лампы переменного тока используя Arduino: просто ограничивать ток симистором не представляется возможным из-за необходимости в мощном симисторе, и как следствие необходимости рассеивания большого количества тепла, а также это не эффективно с точки зрения использования энергии.
Правильным способом реализации является применение регулирования фазы: Симистор полностью открыт, но только в части синусоидальной волны переменного тока.
Можно просто открывать симистор на некоторое количество микросекунд при помощи Arduino, но проблема в том, что непредсказуемо в какой части синусоидальной волны симистор открывается и, следовательно, уровень затемнения непредсказуем. В синусоидальной волне необходима точка отсчета.
Для этого необходим детектор пересечения нуля. Это схема, которая сообщает Arduino (или другому микроконтроллеру), когда синусоидальная волна проходит через нуль и, следовательно, дает определенную точку на этой синусоидальной волне.
Открытие симистора на некоторое количество микросекунд, начиная от пересечения нуля, дает предсказуемый уровень затемнения.
Такую схему легко сделать: пересечение нуля берётся непосредственно из выпрямленного сетевого переменного тока — конечно через оптрон, и дает сигнал каждый раз, когда волна проходит через нуль. Так как синусоида сначала проходит двухфазное выпрямление, сигнал пересечения нуля подается независимо от того, вверх или вниз идет синусоидальная волна. Затем этот сигнал может быть использован для вызова прерывания Arduino.
Само собой разумеется, что должна быть гальваническая развязка между Arduino и сетью. Для тех, кто не понимает «гальваническая развязка», это значит «без металлических соединений», то есть —> оптопарами.
Схема изображенная здесь делает именно это. Сетевое напряжение 220 Вольт идет к мостовому выпрямителю через два резистора 30кОм, который выдает двухфазный выпрямленный сигнал на оптрон 4N25. Светодиод в этом оптроне при низком уровне работает на частоте 100 Гц, а на коллекторе выходит сигнал высокого уровня с частотой 100 Гц в соответствии с синусоидальной волной. Сигнал с 4N25 подается на прерывающий вывод в Arduino (или другого микропроцессора). Программа прерываний дает сигнал определенной длины на один из портов ввода/вывода. Сигнал с порта ввода/вывода сигнала уходит в нашу схему и открывает светодиод в MOC3021, который запускает оптотиристор. Светодиод последовательно MOC3021 указывает, проходит ли ток через MOC3021. Имейте в виду, что при затемнении, свечение будет не очень видно из-за коротких вспышек. Если вы решили использовать тиристорный переключатель непрерывно, то светодиод будет гореть ясно.
Имейте в виду, что только обычные лампы накаливания действительно подходят для затемнения. Схема также будет работать с галогенной лампой, но это сократит срок службы галогенной лампы. Она не будет работать с любыми КЛЛ лампами, если они специально не сделаны с возможностью диммирования.
Если у вас есть оптрон H11AA11, то его использование описано ниже.
Предупреждение: Эта схема работает с напряжением 110-220В. Не делайте её, если вы не уверены в своих действиях. Отключайте её, прежде чем приблизиться к печатной плате. Радиатор симистора подключен к сети. Не прикасайтесь к нему во время работы и сделайте для него надлежащий корпус.
Эта схема безопасна, если она собрана человеком, который знает, что делает. Если вы понятия не имеете об этом или сомневаетесь в своих действиях, то вы можете погибнуть!
Материалы
Детектор пересечения нуля
4N25 или H11AA11 (см. текст).
Резистор 10кОм.
Мостовой выпрямитель 400В.
2x Резистор 30кОм 1/2 Вт (Скорее всего на каждом резисторе будет рассеиваться 200mW).
1 разъем.
Стабилитрон 5,1В(опционально).
Драйвер лампы
Светодиод
MOC3021
Резистор 220 Ом (я использовал 330 Ом, и всё хорошо работало).
Резистор 470 Ом-1кОм (Я закончил с использованием 560 Ом, и всё хорошо работало)
Симистор TIC206
1 разъем
Прочее
Кусок текстолит 6×3см.
Провода.
Плата
Я сделал плату при помощи ЛУТ и вытравил её в растворе солянной кислоты и перекиси водорода. В интернете есть много статей на эту тему. Вы можете сделать плату, используя прилагаемый рисунок ПП. Сборка платы достаточно проста. Я использовал панельки для оптронов и мостового выпрямителя. Скачать рисунок платы и его зеркальную версию можно внизу статьи.
Примечание: рисунок платы имеет текст. В незеркальной версии рисунка текст зеркален, а в зеркальной версии рисунка текст не зеркален. Это правильно. При ЛУТ, отпечатанный рисунок переноситься непосредственно на медь, где он и выглядит правильно.
Я использовал TIC206. Он может выдавать 6 ампер. Имейте в виду, что проводники платы не выдержат 6 ампер. При подключении мощной нагрузки припаяйте провод на проводники от симистора к разъемам и на проводники ко вторым разъемам.
Если неясно значение контактов: сверху вниз по второй фотографии:
+5 вольт.
Сигнал прерывания (Digital Pin 2 Arduino).
Сигнал для симистор (выходит из Digital Pin 3 на Arduino).
GND.
ПРИМЕЧАНИЕ:
Если у вас есть оптрон H11AA11, то вам не нужен мостовой выпрямитель. H11AA11 имеет два не параллельных диода, и может работать с переменным током. Он совместим по выводам с 4N25, просто вставьте его в припоя и 2 перемычки между R5 и + и R7 и -.
Программа
Программа довольно проста. Нулевой Х сигнал генерируется в прерывании. Затем в прерывании симистор переключается на определенное время. Программа доступна ниже.
О программе: Теоретически в цикле можно было позволить переменной «i» начинается с ‘0 ‘. Однако, поскольку времени на прерывание мало, использование ‘0’(полностью вкл.) может немного испортить время. То же самое касается 128(полностью выкл.), хотя это кажется менее критичным. Точность ‘5’ или, возможно, ‘1’ является пределом настройки. Ваш диапазон может быть, например, от 2 до 126, вместо 0-128. Если у кого-то есть более точный способ настройки времени прерывания, я буду рад услышать его.
Результаты и применение
Посмотрите короткое видео о работе устройства, записанное на мобильный телефон.
Подобным способом можно сделать схему для смешивания RGB светодиодов. Это также возможно с текущей схемой, но необходимы две дополнительных симисторных схемы. Разумеется, нужен только один детектор пересечения нуля.
Также возможно сделать традиционную (назовем ей старомодной) гирлянду для рождественской елки, работающую непосредственно от 220 (или 110) вольт. Повесьте 3 провода с разными лампами на дерево и регулируйте их при помощи этой схемы с двумя дополнительными симисторными схемами.
AC Light Dimmer Module. Модуль сетевого диммера управляемый Arduino
Если кончатся на Ali то можно купить на banggood : http://bgd.by/2kez6f
И так давайте сначала ознакомимся, что же такое Диммер вообще:
Диммер — электронное устройство, предназначенное для изменения электрической мощности (регулятор мощности). Обычно используется для регулировки яркости света, излучаемого лампами накаливания или светодиодами.
Обычно диммеры встречаются как выключатели света, только не с клавишами вкл. и выкл. А с крутилкой регулировки яркости, с ее помощью можно увеличивать и уменьшать яркость лампочки например.
Но Важно понимать, что это все будет работать только с лампами накаливания, с энергосберегающими лампами не прокатит. С светодиодными лампами тоже не прокатит, за исключением специальных светодиодных ламп предназначенных для управления диммером.
Регулировать яркость это конечно хорошо, но нужно постоянно подходить к выключателю и крутить яркость. Вот для решения данной проблемы и существуют диммеры цифровые, которые управляться будут микроконтроллерами на растоянии.
Собственно данный модуль и предназначен для этого.
Данный модуль AC Light Dimmer Module фирмы RobotDyn и у них на сайте есть схематика данного модуля которую я и приведу:
Когда я заказывал данный модуль, я думал, что тут все просто, подключу плюс и минус от ардуино и шим сигнал буду подавать, чтоб лампочка меняла яркость. Но как оказалось все гораздо сложнее.
Модуль имеет 4 пина подключаемых к Arduino :
Z-C – Zero-Cross detector
Пин Zero-Cross это пин прерывания, как он работает я так и не понял, но мучался с ним долго. в итоге я нашел рабочий скетч демонстрирующий работу диммера, плавно включая и плавно выключая лампочку. собственно от данного примера можно дальше и прыгать делая все под себя.
Вот сам скетч для работы с модулем “AC Light Dimmer Module”:
Схема подключения:
Arduino | AC Light Dimmer Module |
+5 | VCC |
GND | GND |
pin 3 | PWM |
pin 2 | Z-C |
Если вы знаете как работает пин прерывания и вы победили данный модуль, пожалуйста отпишитесь в комментариях.
Демонстрация работы в Видео:
ДИММЕР ПЕРЕМЕННОГО ТОКА НА АРДУИНО
Потребители переменного тока повсюду – практически вся бытовая техника получает питание от сети 220 В. Поэтому часто сталкиваемся с ситуациями, когда нужно иметь управление нагрузкой переменного тока, такой как лампа, двигатель, нагреватель и другие электроприборы. Понятно, что принцип управление нагрузкой переменного тока не совпадает с нагрузкой для постоянного тока. Поэтому требуется использовать разные электронные схемы для этой цели.
Теоретическая часть и схема
На рисунке показана синусоидальная волна сети с частотой 50 Гц. Для построения диммера важны точки пересечения нуля (точки, где волна меняет свою полярность). Чтобы зафиксировать эти точки, надо использовать детектор пересечения нуля.
Рисунок 1. Сетевая синусоида (зеленые стрелки показывают точки пересечения нуля)
На рисунке далее приведена принципиальная схема всего регулятора мощности переменного тока.
Рисунок 2. Принципиальная схема цифрового диммера переменного тока
Элементы R1, R2, IC1, D1 и C3 создают схему детектора пересечения нуля. Он предназначен для обеспечения надлежащей оптоизоляции сетевого напряжения. Таким образом получаем сигнал, который можно безопасно подключить к входам и выходам Arduino. Далее показан выходной сигнал детектора пересечения нуля (вывод 4 микросхемы IC1). Согласно спецификации TLP521-1 это микросхема состоящая из фототранзистора, оптически связанного с инфракрасным излучающим диодом на основе арсенида галлия. Конечно, можно использовать и другие аналогичные оптопары.
Рисунок 3. Выходной сигнал цепи детектора пересечения нуля
Итак, тут будем использовать импульс пересечения нуля в качестве триггера для главной цепи управления. Это легче понять, просмотрев код Arduino и выходную волну. Радиоэлемент IC3 – тиристор BT138. Нагрузка включена последовательно с тиристором и линией переменного тока, поэтому он определяет количество энергии, которое должно быть подано на нагрузку.
Внимание: монтажное основание BT138, что используется для крепления радиатора, подключено к контакту 2. Вы не должны касаться радиатора или прикручивать его к металлическому корпусу!
Радиодетали R4, R5 и C2 реализуют схему демпфирования для IC2, а C1 и R7 создают схему демпфирования для IC3. Эти детали помогают устройству быть совместимым с различными типами нагрузок, такими как индуктивные. Оптрон IC2 является компонентом обеспечивающим надлежащую гальваническую развязку между цифровой стороной и линией переменного тока 220 В. Выбранный тип – MOC3021. Также можете использовать другие аналогичные, но будьте осторожны, чтобы не использовать детали со встроенным детектором пересечения нуля. Они полезны для переключения нагрузок переменного тока (ВКЛ / ВЫКЛ), а не для диммирования.
Разработка печатной платы
На рисунке показана разработанная схема печатной платы. Линии переменного тока, которые должны пропускать большой ток, более толстые и двусторонние. Кроме того, обе стороны были усилены для уменьшения сопротивления и увеличения возможностей передачи мощности.
Рисунок 5. Расположение деталей печатной платы диммера переменного тока
Все компоненты обычные по размеру. Поэтому будет легко паять и использовать схему в качестве готового модуля. R2, R4, R5 и R7 – резисторы мощностью 1 Вт. Резистор R1 и R6 0,25 Вт. C1 и C2 могут быть выбраны типа MKT или полиэстер, но убедитесь что они имеют номинальное напряжение не менее 400 В. Конденсаторы с номинальным напряжением 250 В тоже в принципе можно брать, но 400 В – это разумный выбор при подстраховке для напряжений конденсаторов. K1 – разъем MKDSN. P1 – традиционный 4-контактный штекерный разъем.
Сборка схемы регулятора
На рисунке показан опытный образец печатной платы. Схема PCB и файл Gerber прилагаются в архиве. Установленный радиатор подходит для тестов. Для долгосрочного использования надо использовать больший по размеру радиатор. Расположение IC3 около границы печатной платы значительно облегчает задачу установки любого радиатора.
Рисунок 6. Первый прототип схемы управления
Теперь время подключить схему к плате Arduino и начать управлять нагрузкой переменного тока. Выбрана Arduino Nano, но вы можете использовать и другие подобные платы. Пример кода Arduino для диммера переменного тока смотрите далее:
- const byte ZCP = 2;
- const unsigned int dim = 5000;
- void setup() <
- pinMode(ZCP, INPUT);
- pinMode(10, OUTPUT);
- digitalWrite(10, LOW);
- >
- void loop() <
- if (digitalRead(ZCP) == HIGH)
- Zero_Cross();
- >
- void Zero_Cross() <
- digitalWrite(10, LOW);
- delayMicroseconds(dim);
- digitalWrite(10, HIGH);
- >
Нет необходимости писать более сложный код для тестирования диммера – этот итак будет работать хорошо. Существует два метода отслеживания импульсов детектора пересечения нуля: опрос и прерывание. В первом варианте было с помощью прерывания, но в некоторых ситуациях сталкивались с мерцанием нагрузки. Мерцание – раздражающая ситуация, которая случается с некоторыми диммерами. Причина в неправильном выборе времени. Как уже упоминалось ранее, точки пересечения нуля очень важны и любой случайный сдвиг времени приведет к нестабильности. Поэтому переключили на метод опроса (строки с 8 по 11).
Практические испытания
Все что нужно сделать, это изменить время отключения симистора в обоих циклах, чтобы переменная «dim» определяла мощность передаваемую нагрузке. В качестве отправной точки установим диммер на середину. Это означает что в течение 5 мс симистор отключен. А теперь давайте подтвердим теорию на практике, изучив форму волны нагрузки. Использовался обычный трансформатор на 220 В / 12 В.
Рисунок 7. Проверка нагрузки и необходимых соединений
На рисунке показана форма выходного сигнала (50%). Вы можете усовершенствовать код и добавить две кнопки для увеличения и уменьшения выходной мощности.
Рисунок 8. Форма выходного сигнала в 50% мощности (dim = 5000)
В общем получилась очень даже неплохая вещь, позволяющая цифровым сигналом управлять различными, в том числе очень мощными нагрузками, что повышает удобство пользования электроприборами и увеличивает их срок службы.