Регулятор мощности с электронным управлением.

Регулятор мощности с электронным управлением.

Понадобился мне регулятор мощности. Простых схем как грязи. А можно вообще не заморачиваться и купить на Али уже собранное устройство. Но это не мой случай. Мне необходим регулятор, который не только выполняет свои прямые функции, но и работает в заданном, настраиваемом диапазоне, а также может быть дополнен таймером и разными датчиками.


Способов регулировать мощность великое множество. Но как не крути для потребителей, которые питаются непосредственно от сети переменного напряжения (~220V) лучше всего использовать фазовое регулирование. У простых аналоговых схем процесс зависит от времени заряда конденсатора. Чем больше время заряда, тем позже открывается симистор и тем меньшую мощность мы подаем на потребителя. Для цифровых устройств все слегка по-другому. Проблема заключается в том, чтобы поймать момент, когда происходит переход фазы и отталкиваясь от него начать отсчет времени до включения симистора.

Для формирования импульсов перехода фазы, а также для непосредственного управления симистором я собрал вот такую схему.

Силовая и управляющая части полностью развязаны. Для питания МК и дисплея я использовал приобретенный на Али компактный и очень дешевый AC-DC 5V 700mA преобразователь.

Схема формирования управляющих импульсов состоит из гасящих резисторов R1, R3, диодного моста VD3 и транзисторной оптопары OC1, а также подтягивающего резистора R6. На выходе Pin_1 мы имеем следующий сигнал.

Схему управления симистором взял с просторов интернета от себя ничего не добавлял. А для того что бы ей было проще управлять прикрутил 315-тый транзистор. Для чего нужна цепь С1-R2 я, честно сказать не знаю, но подозреваю, что она выполняет роль компенсатора всплесков напряжения при подключения активно-индуктивной нагрузки. Например, электродвигателя. Так что если подключаете лампу или ТЭН, то лучше эту цепочку не ставить.

Я старался разместить элементы как можно компактней, но так чтобы они не мешали друг другу. В итоге получилась вот такая плата.

Блок управления имеет большой потенциал, но он прозаичен. Индикатор Nokia5110, энкодер с кнопкой и конечно же Mega8. Контроллер имелся только в TQFP корпусе, а так как у меня не всегда с первого раза получаются платы под него, то пришлось городить небольшой огород с использованием самодельного переходника. Вместо кт315-ого я использовал BC846 в SOT корпусе. Да и вообще для блока управления брал в основном SMD компоненты.

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

Немного о работе устройства.

Регулятор может работать в диапазоне от 0 до 100 % с минимальным шагом регулировки 0,33%. Также можно настроить рабочий диапазон сузив его до необходимых пределов регулирования. Если особая точность не требуется, то можно увеличить шаг регулирования. В процессе работы на индикаторе будет отображаться проценты где 100% будет верхняя уставка, а за 0% будет приниматься нижняя уставка рабочего диапазона. При этом шаг регулирования в процентном отношении будет увеличиваться пропорционально уменьшению диапазона.

При первом включении регулятор потребует настройку. После чего, запомнив необходимые параметры, будет работать согласно им. Симистор ВТ-136 рассчитан на ток 4А, то есть его можно смело использовать на нагрузку 500…600 ватт прицепив на него должный радиатор. Если кому необходимо что-то помощнее, то этот симистор можно легко заменить на BTA-10. Этот тянет 10А. При этом необходимо будет усилить на плате некоторые дорожки напаяв на них проводки или обрезки выводов.

Вот так отображается на осциллографе работа регулятора мощности. На видео хорошо видно, как разгорается и затухает лампочка в процессе его работы.

Проект и файл прошивки находятся в приложении. Для точной работы устройства необходимо настроить работу внутреннего генератора, установив необходимые калибровочные значения в строке:

OSCCAL = 0xAA;          //подстраиваем частоту тактового генератора на 8МГ 

после чего заново скомпилировать проект и уже после этого прошить в контроллер.

После прошивки МК необходимо будет запрограммировать фьюзы так, как показано на рисунке.

Для настройки регулятора лучше всего подключить небольшую лампочку и вольтметр. При первом включении на экране появится ноль, включится подсветка, но подключенная лампочка может и не гореть. Это происходит из-за того, что симистор не успевает открыться в момент перехода фаз. Цифры на экране - это не что иное как показание счетчика Т1 от момента срабатывания прерывания по INT0 до включения симистора. Поворачивая ручку энкодера необходимо найти момент устойчивого свечения лампы (ориентировочно 2…4). Это будет соответствовать 100% мощности и самой верхней границе рабочего диапазона. Если дальше вращать энкодер, то верхняя граница будет смещаться в сторону уменьшения мощности. Настроив верхнюю границу необходимо нажать на кнопку энкодера. Значение запишется в память МК. После чего надо выбрать шаг регулирования. Затем настроить нижнюю границу рабочего диапазона. Ее можно настроить как по необходимому минимальному напряжению, так и по отключению симистора (ориентировочно 300…304). Всё. Настройка завершена и регулятор включится с параметрами нижней границы выбранного диапазона. При этом на экране будет отображен ноль. Регулировка происходит вращением ручки энкодера. При изменении рабочих параметров будет включаться подсветка, а по прошествии некоторого времени она погаснет и новый параметр запишется в память МК. При этом наблюдается небольшой провал в работе регулятора и как следствие моргание лампы из-за того, что при записи данных в EEPROM необходимо отключать все прерывания. При следующем включении регулятор начнет работать, используя сохраненные данные. Если опция с записью текущего параметра не нужна, то можно отключить ее закомментировав вот эти строки в основном теле программы перед компиляцией и прошивкой.

/*
if (g_d_timer != d_ind_old_eepr) {    		//сравнения данных индикации с предыдущей записью   
	d_ind_old_eepr = g_d_timer;	     	//сохранения новых записей для проверки 
	CLI;				 	//запрещаем прерывания  
	TCCR1B = CLEAN;				//выключаем таймер 1 для предотвращения "вспышки"     
	eepr_in ((g_d_timer>>8), EE_POWER_H);	//запись в EEPROM    
	eepr_in (g_d_timer, EE_POWER_L); 	//запись в EEPROM 
	SEI;				  	//разрешаем прерывание   
};
*/

Если требуется поменять начальные настройки необходимо несколько раз подряд нажать на кнопку энкодера. При этом загорится и потухнет подсветка дисплея. После этого надо перезапустить регулятор методом выкл/вкл.

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

А на сегодня всё. Удачи.

10.12.2019



Доработка фазового регулятора мощности.

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

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

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

Корпус напечатал на 3D принтере. Прошу строго не судить, это в общем мой первый такой корпус, да и вообще первая напечатанная более-менее толковая вещь. С появлением 3D принтера приходится в спешном порядке осваивать Автокад.

В планах подключить к этому регулятору цифровой датчик DS18B20 и сделать возможным поддержание заданной температуры (около 70...80 С) в некотором процессе с помощью регулирования мощности, подаваемой на ТЭНы или электроплитку. Ну вы в общем поняли для чего. Но это будет уже совсем другая история.

А на сегодня всё. Удачи.

23.11.2020



В процессе эксплуатации пришло понимание того, что подсветка нужна постоянная или не нужна совсем. Поэтому немного переделал программу и сделал подсветку, включаемую по нажатию на кнопку энкодера и работающую постоянно, а не какое-то время. Если кому надо так, в приложении 09-тая версия прошивки.

А на сегодня всё. Удачи.

09.03.2021


Если вдруг найдете в статье неточности или заблуждения. Напишите мне об этом. Я подправлю.

Приложение:
10.12.2019 Проект под CVavr, прошивка, плата и схемы.
23.11.2020 Схема, плата, новая прошивка версии 0.8 и файлы для печати корпуса.
09.03.2021 Прошивка версии 09