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

DDRx.1 = 0;
PORTx.1 = 1;
плюс внешнюю подтяжку 4,7 ставил — не помогло
Если 4,7 Ома, то вывод к земле не «придавится». )))
А нет ли альтернативной функции у используемого вывода (АЦП,JTAG, пр.)? Может быть она программно не отключена?
4,7K
INT1 на mega328 32-х пиновый
программно ничего не надо отключать вроде.
я не понимаю, это что, только у меня такая проблема?
ДакладАю! С заменой 4n35 появился теплый ламповый сигнал! Без дребезга и прочих забабонов! Удивительно, но видать может быть и так.
Поздравляю от души. Видите сами, как важно проверять комплектующие перед установкой! Удачи, коллега!
Здравствуйте! Повторил алгоритм. Держу кнопочку…. яркость нарастает, но примерно в середине монотонность нарушается, максимум мощности на 2-3 сек, затем спад, снова равномерно. С чем это может быть связано? Дело не линейности выхода от угла открытия — я это понимаю, а именно в нарушении монотонности.
Тяжело что-то конкретное сказать, так навскидку… Не буду оригинальничать — проверьте ещё раз монтаж, исправность элементов и пр.
Уведомление: Управление мощной нагрузкой переменного тока « wiki
Простите, а как же схема? Кто куда подключать? ?ли может в протеусе там что???
Простите, не понял вопроса… Как это — что и куда подключать?
Просто я хотел бы посмотреть в эмуляторе, типа Протеуса, как оно работает…
Я с Протеусом не дружу и не работаю. А осциллограммы «живой» работы представлены в статье.
В комментариях к коду есть одна небольшая неточность: Вы регистру сравнения OCR1A присваиваете значение переменной brightness, т.е., увеличивая переменную, увеличиваете и OCR1A, которая, в свою очередь, при режиме CTC, увеличивает задержку отпирания симистора, та самая t01-t3. Таким образом, при увеличении brightness свечение лампы будет уменьшаться… ?ли я не прав? В принципе, код вполне работоспособный. При повторе с вариантом для кнопок, возможно, даже ни кто и не заметит, он при желании вникнуть может ввести в ступор.
Еще для сети 220 В я бы рекомендовал для более стабильного регулирования ставить снабберные цепи для симисторов, как это указано в даташите.
Вы совершенно правы, коллега. Переменную логичнее было бы назвать по-другому. По поводу снабберных цепей — я их всегда использую в работающих конструкциях. В статье же ставилась цель пояснить природу и способ управления яркостью.
А если перепутать «ноль» с фазой( не так подать 220В ? Что будет ?
Ничего страшного, без разницы.
Опередили с ответом ….
Здравствуйте.
А можно увидеть полную схему подключения контроллера блок с ATmega8A?
Добрый день. Не выходит получить от 220В красивые импульсы для схемы Zero-crossing. Прикладываю схему и полученную в точке 1 осциллограмму. Не подскажите,ч то я делаю не так? Спасибо.
https://pp.vk.me/c629201/v629201642/2dfb1/5by3CIeM0CM.jpg
https://pp.vk.me/c629201/v629201014/2ec5d/a8YYNHfkKpw.jpg
Ток стабилизации кс407е в два раза отличается от 2с168а. Поставьте вместо 43 к резистор на 15-18 к.
Да и ограничительный резистор на оптопару уменьшите в два раза, т.к. у меня на выходе параметрического стабилизатора 6,8 а у Вас 3,6 В. Удачи!
Спасибо большое за ответы!
Я сделал немного проще — купил стабилитрон 2с168. Но, в итоге получил такую осциллограмму:
https://pp.vk.me/c629201/v629201472/31f84/8vLQ9AIQlZ8.jpg
Ну… Даже не знаю, что сказать. На коллекторе транзистора оптопары точно лог. 1 присутствует? Проверьте в отсутствие сети. Если всё в порядке, то стандартный набор: монтаж, исправность РЭ, правильность прошивки и пр.
У меня стабилитрон не в стекле, как у вас. Есть вариант, что купил не с той буквой.
Может это и не стабилитрон у Вас?
Воистину радиотехника — наука о контактах (с)
Всё переподключил, получил такие импульсы:
https://pp.vk.me/c629201/v629201472/320b8/h-GTK_ZiWXI.jpg
Стабилитроны:
https://pp.vk.me/c629201/v629201472/320a8/96aUZMtcU0Q.jpg
Вот и ладушки )))
Мужики!! А какая частота контроллера??
В исходниках в мэйкфайле смотрите.
А чем его смотреть то??
Вроде нашел 1 мГц ))
Здравствуйте! Почему при увеличения шага регулировки яркости v_change_brightness у меня начинается моргание лампы при достижении крайних положений яркости.
С уважением,
Евгений, ?ркутск.
Скорее всего это происходит в этом блоке операторов:
brightness -= v_change_brightness;//уменьшаем яркость заданным шагом
if(brightness <= BR_lo) brightness = BR_lo;//не выходя за пределы
Значение перепрыгивает через 0 влево, и условие (<= ) не выполняется.
Благодарю за быстрый ответ!
Да, я думал об этом, но:
1)значение мин.яркости BR_lo у нас равно 400, а шаг регулирования изначально равен 10, и я увеличил его до 100, т.е. через ноль за один шаг он не перевалит, а каждый шаг у нас проверка условия «не выходя за пределы».
2)это происходит не только при минимальном, но и при максимальном значении яркости.
Что происходит, совсем не могу понять…
П.с. Очень интересный сайт придумали, спасибо!
С уважением,
Евгений, ?ркутск.
А вообще хочу ввести в схему третью кнопку «ВКЛ/ВЫКЛ», при нажатии на которую свет будет плавно выключаться и включаться, причём включаться именно до той яркости, на которой был выключен. Для этого же нужно вводить ещё одно прерывание?
С уважением,
Евгений, ?ркутск.
Чтобы не гадать на кофейной гуще, просимулируйте в Атмел Студио, следя за переменными и регистрами — так будет быстрее.
Добавить такую кнопку можно без всяких прерываний.
Удачи!
помогите плиз! куда коды кнопок ик пульта тыкнуть чтоб управлять удаленно
Собрал. Сильно греется R1 (43кОм который).
Какой R1 должен быть мощности?
Я поставил 0.6 Вт (какой был) греется очень сильно, но все работает.
У меня установлен 2 Вт.
Здравствуйте, подскажите пожалуйста как вы рассчитывали параметрический стабилизатор, я хотел поставить MOC8030 в место PC2501, у него диод 3В и 60мА.
Самое интересное что я уже использовал вашу схему для управления оборотами нагнетающего вентилятора в твердотопливном котле и как то пересчитывал возможно не правильно, но все работает и по сей день, только посмотреть что я там поставил нет возможности. ? возможно ли использовать в этом месте схему бестрансформаторного БП с гасящим конденсатором?
Привіт. А двохканальний регулятор можна зробити? Якщо так, то що потрібно змінити? Дякую.
Не впевнений, що я Вас вірно зрозумiв… Що Ви маєте на увазі «двоканальній»?
Подскажите, в какой программе файлы из архива открывать ?
Архив сначала нужно распаковать любым архиватором. А потом из папки уже открывать файлы в среде разработки.?ли если хотите просто текст посмотреть то можно в любом текстовом редакторе.
пробовал в FLProg, не определяет данный формат, а Circuit Simulator, почему то, не дает открыть, пишет обратиться к администратору, пробовал давал разрешение через свойства по советам из гугла, не помогает.
Повторяю: для начала распакуйте архив, а потом хоть любым текстовым редактором. Посмотрел сейчас что такое FLProg, довожу вам, что мои разработки к ардуине не имеют никакого отношения.
Что нужно подправить, чтобы запустить на Attiny2313A ?
Нужно создать проект под 2313 и по образу и подобию переписать исходник.
Можно ли как-нибудь с Вами связаться по Вайберу например. Сгорел МК(просто не запускается) в вытяжке по непонятной причине. Стоял там ST62T60C. Писать код под ST62T60C не представляется возможным по двум причинам.
1) В TL866a нету поддержки этого МК(MCU).
2) Никогда, пока что, не писал код под ST.
Но, так как ST62T60C и Attiny2313A PDIP20 и некоторые ноги совпадают по назначению, то есть меньшее количество дорожек резать на плате придётся, поэтому выбрал Аттини2313А и уже купил 2шт .
Хочу этот код приспособить под Attiny2313A, так как МК Attiny2313A очень схож с Атмега8А и менять код особо не нужно. Я уже перерисовал плату вытяжки https://i.piccy.info/i9/11125d7c8f6617cb7432110e351f0d2d/1581174333/105242/1361373/FaberVityazhka_01.jpg
На ST62T60C чтобы избавиться от дребезга контактов использовался АЦП чтобы измерять напряжение на делителях-резисторах и таким образом определялась какая кнопка нажата.
Я почти Ваш код адаптировал под Attiny2313A, но запутался в таймерах могли бы помочь довести код до ума и если не сложно помочь настроить АЦП как было сделано на ST62T60C? Взамен могу помочь Вам с сайтом или форумом довести до ума или с другим проектом. Есть цифровой осциллограф, смогу выложить картинки Осциллограмм после того как заработает вытяжка.