Многие конструкции подразумевают управление мощной нагрузкой. В статье, к примеру, микроконтроллер управлял нагревом паяльника. Но там паяльник запитывается постоянным током, и, поэтому вся регулировка сводится к формированию Ш?М-а на силовом транзисторе. Если же нужно регулировать мощную нагрузку в цепи переменного тока, то реализация сего выйдет немного посложней. Вот эту проблему мы сейчас и рассмотрим. Пару слов теории… Управлять отдаваемой в нагрузку мощностью можно просто регулируя количество периодов/полупериодов сетевого тока через эту нагрузку. Можно просто включать/выключать ток через нагрузку с определённым соотношением, что по сути тот же метод, что и указанный выше. Эти методы регулировки подойдут для сильно инерционных нагрузок (ТЭНы, нагреватели и пр.). Для регулировки, допустим, яркости свечения лампы накаливания такие методы не подойдут по причине заметного и утомительного для глаз мерцания. Поэтому для построения диммеров (устройств регулировки яркости) применяют фазоимпульсный метод управления. Суть его проста. Рассматриваем положительную волну синусоиды. В определённый момент времени tз, который отсчитывается от перехода синусоиды через «ноль» t01, на симистор подаётся открывающий импульс. Симистор остаётся открытым и пропускает в нагрузку ток до момента следующего перехода сетевой синусоиды через «ноль» t10. Очевидно, что чем ближе tз к t01, и, соответственно дальше от t10, тем большая часть полуволны тока будет отдана в нагрузку. ?, наоборот, чем дальше tз от t01 и ближе к t10, чем меньше тока пройдёт через нагрузку. Для отрицательной полуволны синусоиды всё то же самое, только t01 и t10 меняются местами (отсчёт tз ведётся от t10) . Для определения моментов перехода сетевой синусоиды через «ноль» , т.е. для определения моментов времени t01 и t10, служит устройство называемое детектором нуля или Zero Cross по буржуйски.
?з микроконтроллерного конструктора я возьму блок с ATmega8A и периферийный блочок с установленным на нём симистором, схемой детектора нуля и соответствующим обвесом. Нагрузкой послужит обычная лампа накаливания 40 Вт.
Основным критерием проектирования узлов я считаю простоту — это определяет надёжность и повторяемость. Не забудем также и о безопасности — для этого я сделал опторазвязку, чтобы не было гальванической связи микроконтроллера с сетью. Слева по схеме — детектор нуля, цепь Zero Cross. Конструктивно она представляет собой параметрический стабилизатор (R1,VD1) который «обрезает» положительную полуволну синусоиды на уровне напряжения стабилизации стабилитрона, в нашем случае около 6,8 В. Резистор R2 ограничивает ток светодиода оптопары U1. Контакт 4 SV1 (коллектор транзистора той же оптопары ) подключается к выводу микроконтроллера, который определён входом с pull-up резистором — т.е. питает этот транзистор. Контакт 3 Sv1 (эмиттер транзистора) подключается к минусу питания, т.е. к «земле». В момент нарастающего фронта импульса Zero Cross t01 зажигающийся светодиод открывает транзистор оптопары, и вход микроконтроллера оказывается подключенным к «земле» через этот транзистор. Соответственно при ниспадающем фронте Zero Cross t10 светодиод гаснет, транзистор закрывается, и вход микроконтроллера «подтягивается» к напряжению питания pull-up резистором. Конечно, фронты Zero Cross немного не совпадают с истинным переходом через ноль сетевого напряжения. Но эта погрешность не критична — единицы микросекунд. Справа по схеме — цепь управления силовым симистором через оптосимистор, взята из даташита и особенностей не имеет.
Соединяем всё проводами, т.е. подготавливаем макет устройства. Не забудем о развязывающем трансформаторе (на время опытов), а то можно осциллограф сжечь)))
Устанавливать мощность отдаваемую в нагрузку симистором, можно дистанционно, используя любой имеющийся интерфейс, или с помощью органов ручного управления: — энкодера (пример его подключения в этом посте); — переменного резистора, включив его потенциометром, и заведя сигнал с ползунка на какой-либо вход АЦП; — двух кнопок, что проще всего. ?менно под вариант с кнопками я написал код. Как и обычно, исходник подробно прокомментирован, поэтому тратить Ваше внимание на его разбор я не буду. Ну и для понятности приведу осциллограммы работы узлов диммера.
Жёлтая осциллограмма — это Zero Cross. Ниспадающий фронт t01, а нарастающий t10. Синяя осциллограмма — открывающие импульсы симистора Triac Control в момент времени tз.
На этой осциллограмме показан ток через нагрузку при условиях показанных осциллограммой выше, т.е. t01 — tз = 2,5 мс.
??, соответственно ток через нагрузку такой.
Область применения устройств, собранных на основе показанной схемы большая. Приведу лишь некоторые примеры: -диммеры (устройства регулировки яркости освещения); устройства плавного (мягкого) включения; — электронагревательные приборы (плиты, утюги, нагреватели и пр.) Можно регулировать также индуктивную нагрузку, но тогда в цепь симистора обязательно нужно добавлять снабберную цепь (в даташитах на симисторы есть необходимая информация) во избежание пробоя симистора.
В архиве исходник и плата узла симистора.

Стоило бы добавить тот факт что симисторы работающие в фазоимпульсном режиме на мощную нагрузку ( > 200 ватт) создают шумы в радиочастотах средних и длинных волн а так же очень сильно портят синусоиду сети изза чего трансформаторы гудят и греются а провода — свистят или стрекотят…
во избежание этих всех «прелестей» нужно использовать алгоритм брезенхема для регулирования мощности инерционных видов мощной нагрузки…..суть метода в открывании симистора на весь период синусоиды единоразово а потом 99 периодов — держать закрытым — результат 1% мощности….лампочка будет «вспыхивать» каждые две секунды ели-красным накалом, мотор будет получать лёгкий толчек а тен будет немного теплым
при мощности скажем в 50% каждый четный полный период симистор будет открываться а каждяй нечетный — закрыт — лампочка будет моргать как через диод мотор будет крутиться как на 120 вольтах а тен будет работать в пол накала…
при этом ввиду включения симистора в моменты перехода через ноль — исключены все шумы и помехи и вообще какие-либо влияния на питающую цепь
я «игрался» с нагревателями кушающими 60 ампер тока и метод брезенхема — получил неоспоримое лидерство по всем параметрам….ни какие устройства вообще не замечали наличия такого мощного потребителя который включался эпизодически…при фазоимпульсном режиме даже лампочки свистели и трещали с частотой 100 герц…
потому вывод…удел фазоимпульсников это схема
http://shemki.ru/images/articles/359-01.jpg такого рода где ключ — это двунаправленный динистор….тогда схема получается проще некуда работает от нуля до 99%(если подобрать сопротивление переменника и ёмкость кондера … но это «перделка» для лампочки не более того!!!
В статье упоминалось о таком методе управления — он абсолютно не подходит для регулировки яркости ламп накаливания, т.к. подобное мерцание чрезвычайно вредно для глаз.
Доброго времени,
Не могли бы вы пояснить про алгоритм брезенхема, просто столкнулся с проблемой регулирования мощной нагрузкой порядка 40 А в каждой фазе, причем через понижающие трансформаторы, тобиш после трансов нагрузка еще больше.
?звините… А Вы не ошиблись? Каким боком в фазоимпульсном управлении симистором алгоритм Брезенхема???
нагрузки 0…200 ватт обычно и регулируют фазоимпульсно
но нагрузки в 10-100 ампер рулятся уже либо брезенхемом либо синус выпрямляется и дальше либо полевики либо ?ГБТ
выпрямитель тож не просто диоды а нормальный с PFC системой «правильный» выпрямитель
по поводу брезенхема…дык…всё то же самое только вместо простого мока ставится мок зеро крос 3063 например
ну и алгоритм для МК очень прост
этот код проверен и работает
всё что нужно — раз в положительную полуволну (неважно в каком месте) вызывать UpdPhase() и в структуре(структурах если много таких) в переменной Out будет результат(1 — надо включить симистор, 0- погасить светодиод МОКа)
Спасибо большое за информацию !
Отличная статья. Напиши как расчитать номиналы R4, R5.
Спасибо. Эти номиналы взяты из даташита на MOC3023 (типовая схема включения).
В варианте с BT137, 139 резистор R5 зело греться любит. причем зависит от симистора часто непредсказуемо — от партии к партии.
BTA4xxx гораздо более стабильны, хоть и малость дороже.
Судя по рисунку необходимо определить сначала где фаза, где ноль? А потом уж и в розетку совать? ?ли все равно ….
Определять не нужно — суйте как понравится.
Zero Cross — специфическая штучка, вовсе не подходящая для индуктивностей, которых полно: трансы, соленоиды, двигатели. Прямо печалит эйфория на это Zero Cross, когда сплошь нужны датчики нуля тока: не только же лампами накаливаниями и резистивными грелками живы быт и промышленность…
В этой статье освещён вопрос управления НЕ?НДУКТ?ВНОЙ нагрузкой!
Вопрос по поводу кода.Как вы добились опроса кнопок в 65 Мс через Таймер 0 если
при 8Мгц и дилителе 1024 (1/7813)*256=32 Мс ?
Если Вы внимательно смотрели makefile — там указана частота 1 МГц, т.е период 1 мкс. Запускаем с делителем 256, соответственно период 256 мкс. Умножаем на 256 (таймер 8-ми разрядный) и получаем 65536 мкс = 65, 536 мс.
Безенхем штука хорошая. Только вот с малоинерционными нагрузками нехорошо получится. ? точность регулирования низковата.
Так ведь в статье описана регулировка не по алгоритму Брезенхема!
Ну да, пардон, это я по поводу комментария clawham, который выше.
Брезенхем конечно круто…
Делал несколько устройств по этому принципу.
Регулятор мощности для паяльника на 42В, 40Вт. Трансформатор «цокает» в моменты включения (естественно включение при переходе через «0»).
Канальный нагреватель в вентиляционном канале, мощностью 6 кВт. Период коммутации 1,28 с. В моменты коммутации естественно идёт просадка напряжения. ? лампы накаливания в помещении об этом свидетельствуют 😉
Частично проблема решилась разделением нагрузки надвое и сдвигом в коммутации каждой нагрузки на половину периода (0,64 с).
Здравствуйте!
Понравилась схемка. Спасибо за то что выложили.
Хочу воспроизвести, но что-то никак не пойму что такое PC2501. никак не найду, может описка?
Спасибо,
Андрей.
PC2501 — это оптрон, по схеме хорошо видно. Необходим для гальванической развязки.
s_black, спасибо за ответ.
я вижу что это оптрон. но я не могу найти _эту_ модель. вот и думаю, может описка?
Украина. Россия.
s_black скажи пожалуйста каким ёбразом схема Zero Cross обрабатывает вторую полуволну, на осцилограммах видно что она обрабатывает обе полуволны, вопрос как?
А она обрабатывает только положительную полуволну ))) Просто конец положительной полуволны — это начало отрицательной (переход через ноль). Соответственно, конец отрицательной полуволны — это начало положительной ( обратный переход через ноль).
s_black Если я правильно понял, сначала прерывание срабатывает по переходу +-, а потом -+ . Я бы всё же поставил 2 оптопары для обработки каждой полуволны, если исходить из логики (точнее планировал до того как не наткнулся на данную статью).
Кстати статья довольно позитивная, за что, естественно, респект.
Да, правильно. Прерывание настроено на любое изменение уровня.
Спасибо за оценку!
s_black.
Есть, кстати, интересные оптопары, например: PC814
http://www.w-r-e.de/robotik/data/opt/pc814.pdf —
точнее их очень много интересных 🙂
После поиска в сети наткнулся на схемку zero-crossing detector. Схемка порадовала тем что все детали SMD и самое главное что там нечему греться, поскольку токи мизерные. Это пригодиться кому требуется минимизировать размеры печатной платы.
Заработала почти сразу: пришлось уменьшить сопротивление R4 раза в 2-3 поскольку оптопару поставил 4n26.
?звиняюсь заранее если посчитаете рекламой(хотя это не так).
Не могли бы посоветовать или дать ссылку как организовать управление трехфазной нагрузкой от Arduino. нагрузка тэны 9кВт (3х3кВт). Особенность в том что сеть может (особенно зимой) не выдержит. ?дея включать на 70% мощности и при достижении заданной температуры снижать до 50% мощности. ?з ваших комментариев я понял что применение Z/C технологии в моем случае не пойдёт из за шумов в сети (гармоник).
Управление трёхфазной нагрузкой описано здесь но не ардуиной, а обычным контроллером.
Спасибо за ответ. Если смотреть с стороны управленийą силовой части то там только электромеханический контактор заменён на электронный. Врубается вся мощность сразуų и также отключается, то есть димирование не происходит.
Только что собрал — работает. Только я ставил на входе диодный мост и ловил восходящий фронт. к сожалению нет осциллографа посмотреть картинку. есть странности и подозрения что отрабатывается только один полупериод. хоть по идее — так быть не должно.
Что скажете?
Непонятно где Вы поставили диодный мост… Если есть подозрения об обработке только одного полупериода — выставьте яркость на максимум — должны явно наблюдаться пульсации света.
спасибо s_black за инфо о трехфазной опробую, как только детатальки получу. Какую схему посоветовали использовать для управления вентилятором, поскольку весь колхоз собираю на ардуинке нужно изменят обороты. Как понимаю не совсем подходит схема с детектором ноля но тут как бы реализовал именно по такой аналогии и как бы , по словам автора всё работает.
Доп информация. Пропустил. Двигатель вентилятора однофазный асинхронный 220в 0.5А.
Э, брат, фазоимпульсным способом асинхронник не порегулируешь 🙁 Тут нужно смотреть в сторону частотных преобразователей — а это посложней будет, хотя и вполне реально.
+ вопрос мощности станет на низких оборотах — лучше не ввязываться, ?МХО
управляя вентилятором можно не понижать на столь, чтобы потом были проблемы, поставить ограничение. Но всё же много сегодня и на продаже разных бытовых регуляторов оборотов с разными схемами реализации, вот одна из популярных
Это те же яйца, только в профиль…
Для коллекторного двигателя эта схема подойдёт, а для асинхронного — нет.
так может где нибудь видали и для асинхрона?
тут трактат типа по ученому
Самое простое решение здесь.
Cделал похоже. Только вместо VD1 поставил диодный мост и убрал R4.
Вот софт. Строго не судите — только учусь.
Управление еще не делал. Главное — поймать полуволну! 🙂
Вот нашёл фирменную схемку фазо-импульсного для движка, но она тоже «режет» двигатели особо на малых оборотах. Так же надо как то вместо ручного управления прикрутить к ардуину- вместо потенцика Р1. Тут нужна развязка от сети. Вот источник и схема с платами.
А тут на полевиках и меандр более красивый 🙂 но и дороже. Если это включать более объёмный проект, то наверное стоит — во всяком двигатель продержит несколько дольше прежней схемы.
У меня жуткий дребезг на прерывании после 4n35.
Кто-нибудь борол проблему?
— Точнее — после опторазвязки zero-cross detector`а
Какой может быть «дребезг» в транзисторе оптрона ?!?!
Не в транзисторе. что-то происходит неладное.
накинул анализатор уровней на пин прерывания — при переходе через ноль — дрыгалка — int1 вызывается раз пять до нуля и после. дрыгает все. а мне надо чисто. я по фронту каунтер хочу пускать. а тут — каша.
думаю R2 сделать 5к, как то так…
А вывод INT1 Вы как объявили? Может он в Z-состоянии?