Реклама ⓘ
Главная » Arduino
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Похожие статьи:


Реклама ⓘ

Световой диммер управляемый 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 разъем

Прочее
Кусок текстолит 6x3см.
Провода.

Плата диммера

Плата

Я сделал плату при помощи ЛУТ и вытравил её в растворе солянной кислоты и перекиси водорода. В интернете есть много статей на эту тему. Вы можете сделать плату, используя прилагаемый рисунок ПП. Сборка платы достаточно проста. Я использовал панельки для оптронов и мостового выпрямителя. Скачать рисунок платы и его зеркальную версию можно внизу статьи.

Примечание: рисунок платы имеет текст. В незеркальной версии рисунка текст зеркален, а в зеркальной версии рисунка текст не зеркален. Это правильно. При ЛУТ, отпечатанный рисунок переноситься непосредственно на медь, где он и выглядит правильно.

Я использовал 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 провода с разными лампами на дерево и регулируйте их при помощи этой схемы с двумя дополнительными симисторными схемами.

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
T1 СимисторTIC2061 Поиск в магазине ОтронВ блокнот
T4 Оптопара
MOC3021M
1 Поиск в магазине ОтронВ блокнот
T5 Оптопара
4N25M
1 Поиск в магазине ОтронВ блокнот
BR1 Диодный мост400 В1 Поиск в магазине ОтронВ блокнот
Резистор
220 Ом
1 Поиск в магазине ОтронВ блокнот
Резистор
1 кОм
1 Поиск в магазине ОтронВ блокнот
Резистор
10 кОм
1 Поиск в магазине ОтронВ блокнот
Резистор
30 кОм
2 0.5 ВтПоиск в магазине ОтронВ блокнот
Светодиод1 Поиск в магазине ОтронВ блокнот
Добавить все

Скачать список элементов (PDF)

Оригинал статьи

Прикрепленные файлы:

Теги:

Касьянов А. Опубликована: 2012 г. 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (19) | Я собрал (0) | Подписаться

0
Ed #
Make sure to check the original article as it is being updated
Ответить
0
Neit #
Подскажите кто-нибудь симистор, который можно было бы использовать в этой схеме, если нагрузка будет 2 кВт.
Ответить
0
Alex #
BTA41
Ответить
0
SLONik #
Можно ли использовать скоростной счетчик программы Flprog?
Ответить
0
Владимир #
delayMicroseconds(dimtime); // Off cycle
digitalWrite(AC_LOAD, HIGH); // triac firing
delayMicroseconds(10); // triac On propogation delay (for 60Hz use 8.33)
digitalWrite(AC_LOAD, LOW); // triac Off

У вас получается триак открыт 0,01 мс. Разве не должно быть так

delayMicroseconds(10000/2); // Дожидаемся конца волны
delayMicroseconds((10000-dimtime)/2); // Off cycle
digitalWrite(AC_LOAD, HIGH); // triac firing
delayMicroseconds(dimtime); // triac On propogation delay (for 60Hz use 8.33)
digitalWrite(AC_LOAD, LOW); // triac Off
Ответить
0
22580 #
Нет! Это не полевик же тебе. Триак открывается по импульсу, а закрывается при переходе синуса через 0.
Ответить
0
Виталий #
Я так понимаю эту схему можно использовать для регулирования мощностью нагревателя? Что если нагрузка трёх фазная?
Ответить
0
kosto #
В самом грубом варианте, все сделать в трех экземплярах. Три датчика нуля, три симистора etc.
Ответить
0
user #
Тогда 3 таких схемки и 3 канала, либо один датчик нуля, и учитывать сдвиг фаз в МК.
Ответить
0
Косто #
OMG, программно управлять задержкой отключения таким образом это нечто. Лучше с ардуина получать постоянное напряжение и управлять оным одновибратор.
Ответить
0
Джазист #
Всем привет! Делал подобную схему. Хочу сказать что резисторы по 30К не очень подходят для сети 220В. Я очень рекомендую хотя бы один из них сделать подстроечным. У меня получилась оптимальная детекция при их суммарном сопротивлении 630К. Бонусом идет уменьшение рассеиваемой мощности.
Ответить
-1
Алексей #
Извините за грубость, но этот код разве как говнокодом не назовёшь. Процессорное ядро контроллера будет заниматься только тем, что обрабатывать прерывания, особенно в конце диапазона регулировки мощности. На выполнение какого либо другого кода вообще не остаётся ресурсов. Гораздо эффективнее каждые пол периода в прерывании запускать таймер и потом перепрограммировать прерывание на другой обработчик. Есть более совершенная конструкция многоканального симисторного регулятора с более эффективным алгоритмом, ищется в поисковике как "Многоканальный Dimmer, работающий в фоновом режиме" , правда тема на 70 с лишним страниц.
Ответить
0
Павел #
Собрал данную схему. Управлять лампой норм. Вопрос: может ли эта схема регулировать обороты двигателя?
У меня двигатель не удерживает обороты. Работает секунд 10 норм, затем резкими рывками набирается мощность.В моей схеме на выходе добавлена rc цепочка.
Ответить
0
Михаил #
int AC_LOAD = 3; - любой цифровой пин подключается к MOC3021?
attachInterrupt(0, zero_crosss_int, RISING); - по таблице пин 2 ардуины?

Я правильно понял?

и при компиляции выдает:
'zero_crosss_int' was not declared in this scope
это вот к этой строчке:
attachInterrupt(0, zero_crosss_int, RISING);
Ответить
0
Михаил #
История такая: заказал на али 10 мос3021, собрал эту схему - не работает. Только уже я начал думать что у меня что-то с руками, нашел перебором 2 рабочих оптрона 3021 из 10! 2 из 10ти!
Так что всем спасибо, все заработало
Ответить
0
Александр #
Можно ли MOC3021 заменить на MOC3052M или MOC3063M?
Ответить
0
Олег #
По этой ссылке:
https://easyeda.com/VANS/New_Project-dd2552324e954365a3be101345a6995e
Насколько рабочий вариант? Стоит на easyeda заказать производство плат?
Ответить
0
Андрей #
Зенер диод обезателен?
Ответить
0
RadistNAZI #
Такое впечатление, что эту статью писал преподаватель университета кафедры компьютерных наук, который преподает джаву.
Особенно программа. Отличный пример того как не надо делать. Никогда так не пишите программы. Особенно для микроконтроллеров.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическое сопротивление?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Arduino UNO
Arduino UNO
Печатная плата для усилителя "LM3886 + AD825" AVR-программатор USB ASP
вверх