Диммер для лампы
- Войдите на сайт для отправки комментариев
Здравствуйте, товарищи аццы! Помогите кто-нить, покорнейше прошу. Суть проблемы в том, что приобрел я на мухамедэкспрессе модуль RobotDyn AC light dimmer. https://ru.aliexpress.com/item/AC-Light-Dimmer-Module-for-PWM-control-1-Channel-3-3V-5V-logic-AC-50-60hz/32802025086.html?spm=2114.13010608.0.0.xNglD5 Изготовлен он на базе MOC302. На плате русским по белому написано ZeroCross Detector, что как бы намекает на наличие детектора нуля. Так же имеется набор контактов, аналогичных выходам диммера с видео http://www.youtube.com/watch?v=-YyuncOGa1U. Подписаны они как PWM, Z-C, Vcc, GND. Исходя из надписей назначение выводов предельно ясно. Но вот засада. При заливке скетча из видео лампа горит во весь накал и на попытки изменить яркость свечения не реагирует никак.
/* AC Light Dimmer - Inmojo AC Voltage dimmer with Zero cross detection Author: Charith Fernanado http://www.inmojo.com charith@inmojo.com License: Released under the Creative Commons Attribution Share-Alike 3.0 License. http://creativecommons.org/licenses/by-sa/3.0 Target: Arduino Attach the Zero cross pin of the module to Arduino External Interrupt pin Select the correct Interrupt # from the below table Pin | Interrrupt # | Arduino Platform --------------------------------------- 2 | 0 | All 3 | 1 | All 18 | 5 | Arduino Mega Only 19 | 4 | Arduino Mega Only 20 | 3 | Arduino Mega Only 21 | 2 | Arduino Mega Only */ int AC_LOAD = 3; // Output to Opto Triac pin int dimming = 128; // Dimming level (0-128) 0 = ON, 128 = OFF void setup() { pinMode(AC_LOAD, OUTPUT); // Set the AC Load as output attachInterrupt(0, zero_crosss_int, RISING); // Choose the zero cross interrupt # from the table above } void zero_crosss_int() // function to be fired at the zero crossing to dim the light { // Firing angle calculation :: 50Hz-> 10ms (1/2 Cycle) // (10000us - 10us) / 128 = 75 (Approx) int dimtime = (75*dimming); delayMicroseconds(dimtime); // Off cycle digitalWrite(AC_LOAD, HIGH); // triac firing delayMicroseconds(10); // triac On propogation delay digitalWrite(AC_LOAD, LOW); // triac Off } void loop() { dimming = 128; delay(100); dimming = 75; delay(100); dimming = 25; delay(100); }
Скажите, куды копнуть. Требуется просто регулировать яркость свечения с помощью изменения значения одной переменной.
MOC3021 поправочка.
В заголовке скетча есть табличка... какой пин с каким прерыванием. Графы там съехали, но все же видно, что для прерывания 0 нужен пин 2. А у вас - пин 3
вот похожая тема.
а вот табличка )))
а еще у MOC302x zero cross атсуцтвует напрочь.
Ну так это хорошо. Был бы зерокрос ничего отдимерить не получилось бы. Только включено - выключено.
Если пытаться "отдимерить" в каждом периоде - то "да".
А при наличии "зерокрос" обычно пропускается часть периодов целиком.
Судя по табличке соответствия номера прерывания и пинов на моей ардуине, то выходит нулевое прерываение соответствует второму пину. Прерывание инициализируется на второй пин в строке
Как я понимаю, не обязательно указывать номер пина для прерывания.
А третий пин как раз используется как выход для подачи сигнала на диммер для отсечения части синусоиды длительностью в 10 мс.
Так, что в коде должно быть все в порядке.
код рабочий, может модуль не соответствует схеме и оптосимистор подтянут к +, а включение нагрузки управляется логическим нулем. для проверки измени значения в сроках
digitalWrite(AC_LOAD, LOW); // начало импульса включения нагрузки
delayMicroseconds(10); // задержка 1мс
digitalWrite(AC_LOAD, HIGH); // окончание импульса
если отключить пин PWM от платы ардуино, то при подаче питания лампочка светиться не должна.
другого на ум не приходит, кроме банального пробоя симистора....
Если пытаться "отдимерить" в каждом периоде - то "да".
А при наличии "зерокрос" обычно пропускается часть периодов целиком.
Абсолютно согласен. Только это уже не димер а PWM получится. И зерокросс можно вообще опустить. Подавай импульсы кратные 10мс - зерокросс сам разберётся что когда включать. Вот только лампочкой и мотором так управлять не очень хорошо. Лампочка моргает, мотор дёргается. А нагревателю даже лучше - бросков тока нет - меньше помех.
Диммер
лампочке с ее инерцией по боку, если ты на нее смотреть не будишь...
Привет, аццы! В общем решение проблемы нашлось усиленной гуглежкой различных диммеров на базе MOC3021. Нагуглил я следующий код.
По сути он отличается только содержанием функции loop. Но, почему-то, зараза работает. И теперь можно изменять яркость свечения лампы изменяя значение переменной dimming. В общем это все я к чему? Диммеры на базе MOC3021 вполне имеют право на существование. Всем спасибо. Все свободны.
Да. Этот момент я тоже проверил. При отключении хвоста от PWM лампа не горит. Но стоит подключить вывод PWM к +5в, симистор открывается и лампа окрашивает все вокруг в те цвета, в которые она все вокруг окрашивает.
Так и первый пост работает. Как говорится "просто добавь воды" в вышем
delay(100);
случае не различимы глазу при инепции лампы (или не присматривались как лампа 3 раза за секунду меняла яркость). Увеличьdelay(); и все сразу увидишь.
и на попытки изменить яркость свечения не реагирует никак.
в первом посте выклал видео, там в конце видео в loop подобный код.
короче, налицо человек, не доводящий дело до конца....
Буду исправляться, уважаемый развешиватель ярлыков.
Приподниму. Я правильно понимаю, что такую схему диммирования (как на плате, указанной в первом посте), можно применять и для LED-ламп (диммируемых, естественно)?
Просто хочу собрать управление с пульта четырехламповым светильником на светодиодных лампах.
Всем привет!
Пытаюсь разбираться с ардуино и электроникой.
Прикупил себе димммер как у топикстартера, с целью управления вибро-помпой (типа ULKA EX).
Попробовал регулировку диммера, подключив на выход вольтметр. Получил странные значения. Регулировка идет, но скачками и масимальные значения превышают 300В.
Есть ощущение, что вольтмертом я не вижу реальную картину. Это так? Может ли напряжение на выходе диммера быть больше входного напряжения?
Правильный ли вообще подход - регулировать производительность соленоидного насоса диммером?
Есть ощущение, что вольтмертом я не вижу реальную картину. Это так? Может ли напряжение на выходе диммера быть больше входного напряжения?
Лучше конечно почитать о ФИ методе регулирования. Ну и с RMS вольтметрами ознакомиться.
Правильный ли вообще подход - регулировать производительность соленоидного насоса диммером?
Не правильный. Соленоидом, если только это не специальный пропорциональный клапан рулить нельзя. Он или вкл или выкл.
Подскажите пожалуйста вашу схему можно применять и для LED-ламп?
Добрый всем.
Подскажите, плиз. Такой же девайс как и у ТС. Не могу заставить работать. Заливаю упомянутые выше скетчи - тишина. Ардуино нано, D3 пин - PWM.
Есть какой-то секрет?
благодарю
Этого мало. Нужно подключить питание и вывод zc модуля подключить на пин 2 дуины.
Этого мало. Нужно подключить питание и вывод zc модуля подключить на пин 2 дуины.
Делал. Все так же, не фурычит.
1. Переменную, которая используется в прерывании, нужно объявить с квалификатором volatile
volatile int dimming = 128
2. Возможно, 10 мксек мало для открытия симистора, попробуйте поставить 30 для проверки.
Подскажите, как возможно упростить схему. Установлено 2 симистра, для регулирования мощности и одна оптопара для контроля "0". Составил скетч в FL Prog. Как прописать, чтобы использовался один вход на Pin2?
Запустил.
Вопрос: к одному контроллеру можно пару-тройку диммеров подключить?
апну тему
Цепляйте.