Фазоимпульсное управление силовым симистором.

Многие конструкции подразумевают управление мощной нагрузкой. В статье, к примеру,  микроконтроллер управлял нагревом паяльника. Но там паяльник запитывается постоянным током, и, поэтому вся регулировка сводится к формированию ШИМ-а на силовом транзисторе. Если же нужно регулировать мощную нагрузку в цепи переменного тока, то реализация сего выйдет немного посложней. Вот эту проблему мы сейчас и рассмотрим. Пару слов теории… Управлять отдаваемой в нагрузку мощностью можно просто регулируя количество периодов/полупериодов сетевого тока через эту нагрузку. Можно просто включать/выключать ток через нагрузку с определённым соотношением, что по сути тот же метод, что и указанный выше. Эти методы регулировки подойдут для сильно инерционных нагрузок (ТЭНы, нагреватели и пр.). Для регулировки, допустим, яркости свечения лампы накаливания такие методы не подойдут по причине заметного и утомительного для глаз мерцания. Поэтому для построения диммеров (устройств регулировки яркости) применяют фазоимпульсный метод управления. Суть его проста. Рассматриваем положительную волну синусоиды. В определённый момент времени tз, который отсчитывается от перехода синусоиды через «ноль» t01,  на симистор подаётся открывающий импульс. Симистор остаётся открытым и пропускает в нагрузку ток до момента следующего перехода сетевой синусоиды через «ноль» t10. Очевидно, что чем ближе tз  к t01, и, соответственно дальше от t10, тем большая часть полуволны тока будет отдана в нагрузку.  И наоборот, чем дальше от t01 и ближе к t10, чем меньше тока пройдёт через нагрузку. Для отрицательной полуволны синусоиды всё то же самое, только t01 и t10 меняются местами (отсчёт ведётся от 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 в момент времени .

На этой осциллограмме показан ток через нагрузку при условиях показаных осциллограммой выше,т.е. t01 — tз = 2,5 мс.

Здесь уже t01 — tз = 7,5 мс.

И, соответственно ток через нагрузку такой.

Область применения устройств, собранных на основе показанной схемы большая. Приведу лишь некоторые примеры: -диммеры (устройства регулировки яркости освещения); устройства плавного (мягкого) включения; — электронагревательные приборы (плиты, утюги, нагреватели и пр.) Можно регулировать также индуктивную нагрузку, но тогда в цепь симистора обязательно нужно добавлять снабберную цепь (в даташитах на симисторы есть необходимая информация) во избежание пробоя симистора.
В архиве исходник и плата узла симистора.

Запись опубликована в рубрике Микроконтроллерный конструктор с метками , . Добавьте в закладки постоянную ссылку.

91 комментарий: Фазоимпульсное управление силовым симистором.

  1. ИВЦ говорит:

    DDRx.1 = 0;
    PORTx.1 = 1;

    плюс внешнюю подтяжку 4,7 ставил — не помогло

  2. s_black говорит:

    Если 4,7 Ома, то вывод к земле не «придавится». )))
    А нет ли альтернативной функции у используемого вывода (АЦП,JTAG, пр.)? Может быть она программно не отключена?

  3. ИВЦ говорит:

    4,7K
    INT1 на mega328 32-х пиновый
    программно ничего не надо отключать вроде.

  4. ИВЦ говорит:

    я не понимаю, это что, только у меня такая проблема?

  5. ИВЦ говорит:

    ДакладАю! С заменой 4n35 появился теплый ламповый сигнал! Без дребезга и прочих забабонов! Удивительно, но видать может быть и так.

  6. s_black говорит:

    Поздравляю от души. Видите сами, как важно проверять комплектующие перед установкой! Удачи, коллега!

  7. Вадим говорит:

    Здравствуйте! Повторил алгоритм. Держу кнопочку…. яркость нарастает, но примерно в середине монотонность нарушается, максимум мощности на 2-3 сек, затем спад, снова равномерно. С чем это может быть связано? Дело не линейности выхода от угла открытия — я это понимаю, а именно в нарушении монотонности.

  8. s_black говорит:

    Тяжело что-то конкретное сказать, так навскидку… Не буду оригинальничать — проверьте ещё раз монтаж, исправность элементов и пр.

  9. Уведомление: Управление мощной нагрузкой переменного тока « wiki

  10. Виктор говорит:

    Простите, а как же схема? Кто куда подключать? Или может в протеусе там что???

  11. s_black говорит:

    Простите, не понял вопроса… Как это — что и куда подключать?

  12. Виктор говорит:

    Просто я хотел бы посмотреть в эмуляторе, типа Протеуса, как оно работает…

  13. s_black говорит:

    Я с Протеусом не дружу и не работаю. А осциллограммы «живой» работы представлены в статье.

  14. vlasimir говорит:

    В комментариях к коду есть одна небольшая неточность: Вы регистру сравнения OCR1A присваиваете значение переменной brightness, т.е., увеличивая переменную, увеличиваете и OCR1A, которая, в свою очередь, при режиме CTC, увеличивает задержку отпирания симистора, та самая t01-t3. Таким образом, при увеличении brightness свечение лампы будет уменьшаться… Или я не прав? В принципе, код вполне работоспособный. При повторе с вариантом для кнопок, возможно, даже ни кто и не заметит, он при желании вникнуть может ввести в ступор.
    Еще для сети 220 В я бы рекомендовал для более стабильного регулирования ставить снабберные цепи для симисторов, как это указано в даташите.

  15. s_black говорит:

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

  16. Cергей говорит:

    А если перепутать «ноль» с фазой( не так подать 220В ? Что будет ?

  17. vlasimir говорит:

    Ничего страшного, без разницы.

  18. s_black говорит:

    Опередили с ответом ….

  19. Игорь говорит:

    Здравствуйте.
    А можно увидеть полную схему подключения контроллера блок с ATmega8A?

  20. Вадим говорит:

    Добрый день. Не выходит получить от 220В красивые импульсы для схемы Zero-crossing. Прикладываю схему и полученную в точке 1 осциллограмму. Не подскажите,ч то я делаю не так? Спасибо.
    https://pp.vk.me/c629201/v629201642/2dfb1/5by3CIeM0CM.jpg
    https://pp.vk.me/c629201/v629201014/2ec5d/a8YYNHfkKpw.jpg

  21. s_black говорит:

    Ток стабилизации кс407е в два раза отличается от 2с168а. Поставьте вместо 43 к резистор на 15-18 к.

  22. s_black говорит:

    Да и ограничительный резистор на оптопару уменьшите в два раза, т.к. у меня на выходе параметрического стабилизатора 6,8 а у Вас 3,6 В. Удачи!

  23. Вадим говорит:

    Спасибо большое за ответы!
    Я сделал немного проще — купил стабилитрон 2с168. Но, в итоге получил такую осциллограмму:
    https://pp.vk.me/c629201/v629201472/31f84/8vLQ9AIQlZ8.jpg

  24. s_black говорит:

    Ну… Даже не знаю, что сказать. На коллекторе транзистора оптопары точно лог. 1 присутствует? Проверьте в отсутствие сети. Если всё в порядке, то стандартный набор: монтаж, исправность РЭ, правильность прошивки и пр.

  25. Вадим говорит:

    У меня стабилитрон не в стекле, как у вас. Есть вариант, что купил не с той буквой.

  26. s_black говорит:

    Может это и не стабилитрон у Вас?

  27. Вадим говорит:

    Воистину радиотехника — наука о контактах (с)
    Всё переподключил, получил такие импульсы:
    https://pp.vk.me/c629201/v629201472/320b8/h-GTK_ZiWXI.jpg
    Стабилитроны:
    https://pp.vk.me/c629201/v629201472/320a8/96aUZMtcU0Q.jpg

  28. s_black говорит:

    Вот и ладушки )))

  29. Виктор говорит:

    Мужики!! А какая частота контроллера??

  30. s_black говорит:

    В исходниках в мэйкфайле смотрите.

  31. Виктор говорит:

    А чем его смотреть то??

  32. Виктор говорит:

    Вроде нашел 1 мГц ))

  33. Евгений говорит:

    Здравствуйте! Почему при увеличения шага регулировки яркости v_change_brightness у меня начинается моргание лампы при достижении крайних положений яркости.
    С уважением,
    Евгений, Иркутск.

  34. s_black говорит:

    Скорее всего это происходит в этом блоке операторов:
    brightness -= v_change_brightness;//уменьшаем яркость заданным шагом
    if(brightness <= BR_lo) brightness = BR_lo;//не выходя за пределы
    Значение перепрыгивает через 0 влево, и условие (<= ) не выполняется.

  35. Евгений говорит:

    Благодарю за быстрый ответ!
    Да, я думал об этом, но:
    1)значение мин.яркости BR_lo у нас равно 400, а шаг регулирования изначально равен 10, и я увеличил его до 100, т.е. через ноль за один шаг он не перевалит, а каждый шаг у нас проверка условия «не выходя за пределы».
    2)это происходит не только при минимальном, но и при максимальном значении яркости.
    Что происходит, совсем не могу понять…
    П.с. Очень интересный сайт придумали, спасибо!

    С уважением,
    Евгений, Иркутск.

  36. Евгений говорит:

    А вообще хочу ввести в схему третью кнопку «ВКЛ/ВЫКЛ», при нажатии на которую свет будет плавно выключаться и включаться, причём включаться именно до той яркости, на которой был выключен. Для этого же нужно вводить ещё одно прерывание?

    С уважением,
    Евгений, Иркутск.

  37. s_black говорит:

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

  38. Максим говорит:

    помогите плиз! куда коды кнопок ик пульта тыкнуть чтоб управлять удаленно

  39. Игорь говорит:

    Собрал. Сильно греется R1 (43кОм который).
    Какой R1 должен быть мощности?
    Я поставил 0.6 Вт (какой был) греется очень сильно, но все работает.

  40. s_black говорит:

    У меня установлен 2 Вт.

  41. Дима говорит:

    Здравствуйте, подскажите пожалуйста как вы рассчитывали параметрический стабилизатор, я хотел поставить MOC8030 в место PC2501, у него диод 3В и 60мА.
    Самое интересное что я уже использовал вашу схему для управления оборотами нагнетающего вентилятора в твердотопливном котле и как то пересчитывал возможно не правильно, но все работает и по сей день, только посмотреть что я там поставил нет возможности. И возможно ли использовать в этом месте схему бестрансформаторного БП с гасящим конденсатором?

Добавить комментарий

Ваш e-mail не будет опубликован.