Диммер на Arduino для регулировки переменного тока

Рассмотрим один интересный и полезный вопрос. Диммер для регулировки нагрузкой переменного тока при помощи arduino. То есть это плавный контроль таких сетевых приборов, как лампы, нагреватели в виде тэнов или тёплых полов.
Пару недель назад на втором канале, который полностью посвящен программированию arduino, вышел видос про управление нагрузкой постоянного тока при помощи шим- сигнала. То, что смотрите сейчас, тоже должно было выйти на том канале. Но решил опубликовать его.

Радиодетали, компоненты и приборы в этом китайском магазине

Переменный ток в розетке представляет собой синусоиду, то есть напряжение меняется во времени постоянно, и каждые 10 миллисекунд равно нулю. Если смотрели видео про шим-сигнал, то поймете, что так взять и начать регулировать синусоиду не получится.

Устройство, которое будем делать, называется диммер. В него входят обычные синусоиды из розетки и выходят обрезанные. Диммер не пропускает часть синусоиды. И чем больше эта часть, тем меньше среднее напряжение. Изменяя промежутки, когда напряжение равно нулю, будем регулировать суммарное выходное напряжение. Открывает и закрывает напряжение такая железяка, как симистор. Они есть в разных корпусах и на разный ток. Например, крупный парнишка может пропустить через себя 40 ампер при напряжении 800 вольт. Что как бы около 30 квт.

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

Симистор разрывает сеть 220в, arduino будет его открывать и закрывать через оптопару. То есть сама arduino будет оптически развязана сетевым напряжением в целях нашей безопасности. И важный момент. Чтобы вовремя открывать симистор, arduino должна знать, когда напряжение сети проходит через 0. Для этого стоит вторая оптопара, подключенная в противоположную сторону. И на выходе из нее получаем сигнал каждый раз, когда напряжение в сети проходит через 0. И управляем симистором через верхнюю оптопару. Алгоритм работы чуть позже.

Соберем схему в железе

В идеале такие вещи нужно делать на печатной платье. Об на канале скоро отдельный цикл видео уроков. Покажем, как разводить платы и как травить. Ну а пока не умеем делать печатные платы, есть ещё два пути. Первый, это собрать схему на макетной плате. Чем займемся через минуту. И второй – заказать изготовление плат у китайцев. Сделал несколько вариантов плат на платформе easyeda. Первая – на маленьком семисторе, вторая – на большом семисторе. И третья, это трехканальный диммер. У которого есть один общий вход и один общий выход детектора нуля. Три выхода под нагрузку и 3 pin под управление тремя симисторами arduino. Схему легко масштабировать и сделать диммер на любое число каналов.

Чтобы заказать платы, нужно вытащить из проекта gerber- файлы. Нажимаем кнопочку и попадаем на страницу заказа плат у сервиса easyeda. И нажимаем кнопочку скачать gerber- файлы. Они скачаются одним архивом. Идем на сайт сервиса lg psb. Это один из дешевых и крупнейших сервисов изготовления печатных плат в промышленных масштабах c доставкой. Для начала залогинимся на всякий случай. Переходим в корзину и добавляем новый заказ. И добавляем gerber- файл, то есть, тот самый архив. Плата однослойная. Выбираем один слой. Размеры, как можете видеть, поставились автоматически. Количество – мнимум можно заказать 5 штук. Толщина текстолита, цвет. Пусть красный. Это цвет маски, которой покрыта плата. Выбирается припой, которым будут покрыты дорожки. Это оловянно-свинцовый, безсвинцовый и ещё, который не знаем. Дальше толщина медной фольги не текстолите. Ну цена почему-то меняется в два раза. Идут золотые пальчики. Это гребенка вставлять плату в разъем. Потом можно получить плату в таком виде. И еще можно обрезать крайние контакты. Но ничего из этого не нужно. Всё сохраняем корзину. Как можете видеть, цена за 5 плат составляет 2 бакса. То есть это примерно 25 рублей за одну плату. Платы промышленного качества достанутся практически даром.

Единственное, доставка. Нужно указать свой адрес. Для удобства обычно пользуемся сервисом транслит, который переводит русские буквы в транслит. Ну и сама доставка. 30 долларов за курьерскую, и стандартная – 250 рублей за отправку по почте. Dhl, с физическим лицами не работают. Если нет знакомых фирмы, то лучше не связываться и подождать пару недель почтой. Оплатить это дело можно по paypal или банковской карты. В общем, печатные платы заказал, и пока они едут, соберем схему на макетке.

Данный проект сборки регулятора переменного тока относится к тем, которые можно собрать на макетной плате, глядя на разводку печатной платы. То есть вставляем компоненты в макетку точно так же, как на печатке. И соединяем все ногами самих компонентов. Вот, например, симистор дотягивается до обоих клеммников и до оптопары. Берем и запаиваем. А еще можно использовать лайфхак из видео про сварочник для аккумуляторов. То есть распечатать разводку платы, приклеить ее на макетку и паять, ориентируясь на дорожки. И спустя 10 минут работы пинцетом и паяльником получается плата. Компактная.
Для соединения использованы многие компоненты. Единственное, надо было соединить общий выход куском медного провода. Важный момент. Паяем с глицериновым флюсом, и его следы можно видеть. Он блестит. Диммер работать с напряжением в 220в и пробивать через флюс, и работать не стабильно. Или вообще сгорит. Поэтому берём зубную щетку и идём чистить. Ну а лишнее отрезаем ножницами по металлу, а ровняем край. И всё, готов диммер. Здорово и компактно.
На обрезке макетки, собрал вариант с большим парнем. Идет прямое подключение к симистору при помощи колодок. Левая – это выход, средняя – вход, а правая – общая для входа и выхода. К ней по схеме только один резистор. Сам симистор приклеен на двухсторонний скотч. В идеале колодки надо было привинтить. Ну и так сойдет. Всё. Припаяно просто, ногами резисторов. Это плата нужна в одном из следующих проектов. Попробуйте угадать в комментариях, что это может быть.
Сейчас наконец посмотрим на алгоритм, по которому работает управление симистором. Так вот, управлять симистором будем с arduino. Прошивки пишутся в специальной программе. Есть два важных момента. Первый – получение сигнала с выхода детектора нуля, который сообщает, что синусоида напряжения сети пересекает напряжение 0 вольт. Выход детектора нуля подключен к обработчику аппаратных прерываний. Это второй pin arduino. И pin подтянут к земле резистором на 10 килоом. Внутренняя подтяжка не справляется. Не знаем почему. В отличие от всех прошивок в интернете, алгоритм не использует задержки. То есть управление симистором не мешает выполнению остального кода программы. Реализована это при помощи таймера таймер-1. Так как использование обычных счетчиков приведет к некоторым мерцаниям через каждые несколько минут.
Для удобной работы с таймером используем шуструю библиотеку сайберлип. В общем, суть такая, как только обнаруживается переход через ноль снизу, это точка, таймер запускает на время диммирования, и прерывание перенастраивается на переход напряжения через ноль сверху вниз. И время пошло. После срабатывания таймера, симистор открывает ток на потребитель. Как только прерывание замещает переход через ноль сверху вниз, оно останавливает таймер и снова перенастраивается. А также выключает ток через симистор. И так повторяется 50 раз в секунду.

Для регулировки времени, через которое откроется симистор после пересекания через ноль, использован потенциометр. Переменные диммер должны принимать значения от 0 до 255. Это полная и минимальная яркость. И всё. Напомню, что все схемы и скетч можно скачать на странице проекта. Ссылка в описании под видео.

Диммер можно использовать не только для управления яркостью. Гораздо больший интерес представляет система управления нагревательным элементом с обратной связью. Для точного поддержания заданной температуры.
Также диммер можно использовать в системах, таких как умный дом, и контроль этого самого диммера через интернет. Для этого нужно уметь писать программы под windows, android или под веб.

Приехали китайские печатные платы. Повторимся, если вы физическое лицо, то заказывать лучше почтой. Через dhl пришлось прикрываться знакомой фирмой и переоформлять документы на таможне. В общем, такие симпатичные печатки. Если учесть, что они обошлись по 25 руб штука, надеемся, китайцам это хоть чуть-чуть выгодно. Иначе обидно.

Распаяли один диммер и подключаем его к arduino, также как раньше. Двигаем потенциометром, накал лампочки меняется от максимального до еле-еле тлеющего. На самом деле, интересное зрелище.

Наверное, всё видео хотелось посмотреть на реальную форму волны на выходе из диммера. Соответствует ли она картинкам, которые показывал. Воспользуемся дешевым китайским осциллографом, который умеет измерять напряжение до 12 вольт. Стоп. Так делать нельзя. Чтобы измерить сетевое напряжение, нужно воспользоваться штукой, как делитель напряжения. Подойдет соотношение 1 к 20. Чтобы резисторы не грелись, взял номиналы двести и десять килоом. Аккуратненько всё подключаем и только потом включаем в сеть. Это опасно для жизни. И видим ту же самую красоту, как на картинках. Видно, как напряжение в периодах синусоиды появляется, доходит до нуля и пропадает. Чтобы снова включится по таймеру следующим полупериуде. Великолепное зрелище!

Ссылки на странице: https://www.youtube.com/watch?v=jPbptVGZisc

2 комментария

  1. Собрал схему. Наблюдаю пропуски нуля. Регулировка происходит, но лампа периодически моргает (тухнет на мгновение). МОС3023, PC814, резисторы все согласно схеме. Скетч тоже ваш. Куда копать?

Оставить комментарий

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