Как с помощью Ардуино безопасно управлять нагрузкой на напряжении 220 вольт
Для системы «Умный дом» основной задачей является управление бытовыми приборами с управляющего устройства будь то микроконтроллер типа Ардуино, или микрокомпьютер типа Raspberry PI или любое другое. Но сделать этого напрямую не получится, давайте разберемся как управлять нагрузкой 220 В с Ардуино.
Для управления цепями переменного тока средств микроконтроллера недостаточно по двум причинам:
1. На выходе микроконтроллера формируется сигнал постоянного напряжения.
2. Ток через пин микроконтроллера обычно ограничен величиной в 20-40 мА.
Мы имеем два варианта коммутации с помощью реле или с помощью симистора. Симистор может быть заменен двумя включенными встречно-параллельно тиристорами (это и есть внутренняя структура симистора). Давайте подробнее рассмотрим это.
Управление нагрузкой 220 В с помощью симистора и микроконтроллера
Внутренняя структура симистора изображена на картинке ниже.
Тиристор работает следующим образом: когда к тиристору приложено напряжение в прямом смещении (плюс к аноду, а минус к катоду) ток через него проходить не будет, пока вы не подадите управляющий импульс на управляющий электрод.
Я написал импульс не просто так. В отличие от транзистора тиристор является ПОЛУУПРАВЛЯЕМЫМ полупроводниковым ключом. Это значит, что при снятии управляющего сигнала ток через тиристор продолжит протекать, т.е. он останется открытым. Чтобы он закрылся нужно прервать ток в цепи или сменить полярность приложенного напряжения.
Это значит, что при удержании положительного импульса на управляющем электроде нужно тиристор в цепи переменного тока будет пропускать только положительную полуволну. Симистор может пропускать ток в обоих направлениях, но т.к. он состоит из двух тиристоров подключенных навстречу друг другу.
Управляющие импульсы по полярности для каждого из внутренних тиристоров должны соответствовать полярности соответствующей полуволны, только при выполнении такого условия через симистор будет протекать переменный ток. На практике такая схема реализована в распространенном симисторном регуляторе мощности.
Как я уже сказал микроконтроллер выдает сигнал только одной полярности, для того чтобы согласовать сигналу нужно использовать драйвер построенный на оптосимисторе.
Таким образом, сигнал включает внутренний светодиод оптопары, она открывает симистор, который и подает управляющий сигнал на силовой симистор T1. В качестве оптодрайвера может быть использован MOC3063 и подобные, например, на фото ниже изображен MOC3041.
Zero crossing circuit – цепь детектора перехода фазы через ноль. Нужна для реализации разного рода симисторных регуляторов на микроконтроллере.
Если схема и без оптодрайвера, где согласование организовано через диодный мост, но в ней, в отличие от предыдущего варианта нет гальванической развязки. Это значит, что при первом же скачке напряжения мост может пробить и высокое напряжение окажется на выводе микроконтроллера, а это плохо.
При включении/выключении мощной нагрузки, особенно индуктивного характера, типа двигателей и электромагнитов возникают всплески напряжения, поэтому параллельно всем полупроводниковым приборам нужно устанавливать снабберную RC цепь.
Научитесь разрабатывать устройства на базе микроконтроллеров и станьте инженером умных устройств с нуля: Инженер умных устройств
Реле и А рдуино
Для управления реле с А рдуино нужно использовать дополнительный транзистор для усиления тока.
Обратите внимание, использован биполярный транзистор обратной проводимости (NPN-структура), это может быть отечественный КТ315 (всеми любимый и всем известный). Диод нужен для гашения всплесков ЭДС самоиндукции в индуктивности, это нужно чтобы транзистор не вышел из строя от высокого приложенного напряжения. Почему это возникает, объяснит закон коммутации: «Ток в индуктивности не может измениться мгновенно».
А при закрытии транзистора (снятии управляющего импульса) энергии магнитного поля накопленной в катушке реле необходимо куда-то деваться, поэтому и устанавливают обратный диод. Еще раз отмечу, что диод подключен в ОБРАТНОМ направлении, т.е. катодом к плюсу, анодом к минусу.
Такую схему можно собрать своими руками, что значительно дешевле, плюс вы можете использовать реле, рассчитанное на любое постоянное напряжение.
Или купить готовый модуль или целый шилд с реле для Ардуино :
На фото изображен самодельный шилд, кстати, в нем использованы для усиления тока КТ315Г, а ниже вы видите такой же шилд заводского исполнения:
Это 4-канальные шилды, т.е. вы можете включать целых четыре линии 220 В. Подробно о шилдах и реле мы уже выкладывали статью на сайте — Полезные шилды для Ардуино
Схема подключения нагрузки на напряжении 220 В к Ардуино через реле:
Заключение
Безопасное управление нагрузкой переменного тока подразумевает прежде всего безопасность для микроконтроллера вся описанная выше информация справедлива для любого микроконтроллера, а не только платы Ардуино .
Главная задача – обеспечить нужные напряжение и ток для управления симистором или реле и гальваническая развязка цепей управления и силовой цепи переменного тока.
Кроме безопасности для микроконтроллера, таким образом, вы подстраховываете себя, чтобы при обслуживании не получить электротравму. При работе с высоким напряжением нужно соблюдать все правила техники безопасности, соблюдать ПУЭ и ПТЭЭП.
Эти схемы можно использовать и для управления мощными пускателями и контакторами. Симисторы и реле в таком случае выступают в роли промежуточного усилителя и согласователя сигналов. На мощных коммутационных приборах большие токи управления катушкой и зависят непосредственно от мощности контактора или пускателя.
Регулятор напряжения и тока на Arduino Pro Mini
Какой версией регулятора вы пользуетесь?
Голосование закончилось: 05 Янв. 18, 12:47
Всего голосов: 33
Zoldrax, Это никак не влияет на включение на низких напряжениях.
На надежность включения на низких напряжениях помогает увеличение тока управляющего вывода.
В принципе, второй OCR можно настроить на снятие напряжения с управляющего электрода через некоторое время, увеличив ток. Тем самым предохраняем управляющую цепь от перегрева и бонусом включаемся на маленьких напругах.
Но, все равно синусоида где-то до 25 вольт обережется.
В принципе, второй OCR можно настроить на снятие напряжения с управляющего электрода через некоторое время, увеличив ток. Тем самым предохраняем управляющую цепь от перегрева ys1797, 10 Сент. 16, 20:32
Мне только так удалось достичь стабильности на низких напряжениях. Zoldrax, 10 Сент. 16, 01:20
Посл. ред. 11 Сент. 16, 11:32 от sevpro
Извини, не понял, увеличив ток чего и какую управляющую цепь мы спасаем от перегрева? sevpro, 11 Сент. 16, 11:28
Уменьшив продолжительность отпирающего импульса и увеличив ток через управляющий электрод симистора.
У меня сопротивление что в управляющей цепи как-то почернело и попахивать стало, а потом и отгорело совсем.
Уменьшил время импульса — пока нормальный на вид.
увеличив ток через управляющий электрод симистора ys1797, 12 Сент. 16, 19:49
У меня сопротивление что в управляющей цепи как-то почернело и попахивать стало, а потом и отгорело совсем.
Уменьшил время импульса — пока нормальный на вид. ys1797, 12 Сент. 16, 19:49
Неправильно выбран номинал или мощность резистора. Мощность должна быть не менее 0,5Вт, по номиналу написал выше.
Ограничение времени горения светодиода моськи имеет смысл только в двух случаях:
1. Косяки с детектором нуля
2. Энергетические соображения как у меня — бестрансформаторное питание от сети и постоянно сливать в никуда 15мА для меня расточительство.
Посл. ред. 14 Сент. 16, 08:58 от sevpro
1. Косяки с детектором нуля sevpro, 14 Сент. 16, 08:56
от диодного моста Zoldrax, 14 Сент. 16, 16:21
Мощность должна быть не менее 0,5Вт sevpro, 14 Сент. 16, 08:56
Атмега великолепно детектит переход через ноль при прямом подключении ее входа к сети через резистор. sevpro, 15 Сент. 16, 08:34
В обработчике выход сразу обнуляю. Прерывание делал как по возрастанию сигнала, так и по спаду — разницы нет — симистор не закрывался. Zoldrax, 14 Сент. 16, 16:21
в этом твой косяк. детектор нуля здесь не причём. ток управления нужно снимать заблаговременно ДО перехода синуса сети через ноль для надёжного запирания симистора это особенность работы москьки.
для примера диаграмма из шита на МОС3052 Moc. Регулятор напряжения и тока на Arduino Pro Mini. Автоматика.
т.е не менее чем за 200мкс до прихода ноля синуса
Атмега великолепно детектит переход через ноль при прямом подключении ее входа к сети через резистор. sevpro, 15 Сент. 16, 08:34
в этом твой косяк. детектор нуля здесь не причём. ток управления нужно снимать заблаговременно ДО перехода синуса сети через ноль для надёжного запирания симистора это особенность работы москьки. m16, 15 Сент. 16, 11:51
Посл. ред. 15 Сент. 16, 12:35 от Zoldrax
Начал я автоматизировать свою ректификационную установочку (ну просто не всегда находится время на многочасовые медитации в обнимку с колонной :-). С первого взгляда — вроде бы несложная задача. В меру гибкая архитектура как-то сразу сформировалась в голове. В основе всей системы — какой-нибудь микрокомпьютер с операционной системой (остановился на малинке). Его задача — опрос датчиков и блокировок, «интеллектуальная работа» по управлению процессом ректификации и взаимодействие со мной (если нужно). У микрокомпьютера (это голова) есть два исполнительных устройства (это руки). Первая — контроллер куба, основная задача которого — обеспечивать заданную мощность (режим) нагрева куба. Вторая «рука» — контроллер узла отбора. Его задача — обеспечивать заданный режим отбора спирта и разлив фракций в разные емкости. Каждая рука управляется своим микроконтроллером. Остановился на ардуинках (Pro Mini 5V/16MHz) Связано все это по i2c (внутри) и tcp/ip (наружу).
Ну и вот. Сделал левую руку (контроллер куба). Пока в макете, россыпью. Начал программировать функционал. И черт меня дернул полистать форум и наткнуться на эту ветку. «Во!» — думаю: «То что нужно! Как раз регулировка мощности и на ардуинке Pro Mini. Самое то! Меньше думать придется. «. Ну-ну. Читал, читал, читал, читал, читал, читал. Весь вечер читал. Всю ветку прочитал. Но так и не понял в чем же прикол! То ли я что-то сильно не понимаю в этой автоматизации, то ли что-то здесь не так. Ведь вроде бы несложная задачка — застабилизировать электрическую мощность, подаваемую в куб, невзирая на превратности сети. Любой, даже самый маленький стабилизированный источник питания от зарядки для телефона умеет это делать. А тут — все так сложно. Может кто-нибудь из тех, кто понял в чем прикол, растолкует мне пару-тройку моментов?
1. Зачем здесь ПИД?
Поясню вопрос. Пропорциональное регулирование (П) необходимо для управления инерционными системами (например, при стабилизации температуры в термостате). А буквы «ИД» — это дополнительно, если есть еще неучтенные факторы, дестабилизирующие систему. Здесь же (стабилизация электрической мощности, подаваемой в куб) — совершенно безынерционная система. На кой . здесь П и, тем более, в связке с ИД?!
2. Выбор пропорционального метода регулирования приводит к необходимости иметь в «решателе» (т.е. в МК) разность между уставкой и реальным значением управляемого параметра. Отсюда возникает вся эта бодяга (90% ветки) с измерением, оцифровкой и вычислением действующих значений параметров сети. Хотя, в силу безынерционности системы, достаточно просто иметь всего бит информации о соотношении сигнала и уставки. Т.е. информацию о том больше или меньше сигнал уставки. Таким образом, вместо АЦП можно использовать просто компаратор (ну ладно, для гурманов — два компаратора . Естественно, аналоговую уставку («снаружи» МК) нужно сформировать. Такой ЦАП делается элементарно с помощью ШИМ и простейшей интегрирующей цепочки.
3. Еще один усложняющий фактор задачи данной ветки связан с нелинейностью фазового управления мощностью. Я не знаю чем обусловлено всеобщее (на форуме) мнение, что другие методы регулировки мощности, связанные с пропусканием/непропусканием целых полупериодов тока сети, приводят к морганию лампочек у соседей. Это какая должна быть «дохлая» сеть!? Или — не соответствующая сети нагрузка? Конечно, если нагрузить домашнюю сеть десятком-другим киловатт, пульсации будут заметны. Но интересно, у кого дома есть ректификационная колонна на такую мощность?
Я сегодня не поленился и реализовал на макете два метода регулировки мощности с «выстриганием» целых полупериодов. С точностью 1 процент (т.е. всего 100 полупериодов в цикле). Один метода — обычный PWM с частотой сигнала 1 Гц. Второй — PDM (pulse density modulation или сигма-дельта модуляция). Вариант — с диффузией ошибки. Здесь на форуме его еще называют (почему-то) методом Брезенхема. Видимо какая-то очень далекая ассоциация с рисованием на растре. Так вот. У меня ТЭН в кубе для ректификации максимально жрет примерно 1.6 кВт. Я его подключил к сети через переноску 5 м с довольно тонким проводом (ощутимо тепленький при длительной работе). В эту же переноску я включил настольную лампу. И поработал на макете с этими двумя модуляторами. Результат — НИКАКИХ МЕРЦАНИЙ настольной лампы ни в PWM, ни в PDM (ака Брезенхем) ни при каких значениях мощности (от 0 до 100%) я не видел. Так что, ИМХО, эти методы имеют полное право на жизнь в наших задачах.
Избавление от этого мифа (т.е. использование ЛИНЕЙНЫХ регуляторов с мягким переключением в нуле тока) делает задачу регулирования еще проще: реальная мощность меньше уставки — добавляем по единичке (процентику) мощности, больше — убавляем. Так и будем чуть-чуть (на 1 %) болтаться около нужной мощности.
Извиняюсь, коллеги, за многословие. Большую и интересную ветку прочитал, однако. Но появились вопросы. Был бы очень признателен, если бы кто-нибудь растолковал бы мне в чем суть обсуждаемых здесь проблем.