ШИМ регулятор имеет регулируемое выходное напряжение от 0 до 25-28 В (в зависимости от входного напряжения может достигать 35 В), так же предусмотрена токовая стабилизация в пределах от 0 до 3 А (при необходимости выходной максимальный выходной ток ШИМ регулятора может быть повышен до 5-8 А).
При КЗ выхода ШИМ регулятора выходной ток будет ограничен значением токовой стабилизации.
Схема ШИМ регулятора
Генератор ШИМ сигнала выполнен на элементе А2.1 компаратора LM393, входное регулирующее напряжение (инвертное) подается на не инверсный вход LM393. В зависимости от величины регулирующего напряжения меняется скважность ШИМ сигнала. ШИМ сигнал подается на транзистор BC547, который работает в ключевом режиме и управляет соответственно работай силового транзистора КТ827 (Дарлингтон).
Когда КТ827 открыт, ток от источника питания следует через ключ к индуктивности и нагрузке. Кроме передачи в нагрузку, энергия копится в катушке и конденсаторе (стадия накачки). Когда КТ827 закрывается, накопленная в катушке энергия отдается в нагрузку (стадия разряда).
На выходе ШИМ регулятора установлен делитель напряжения (1/5), это напряжение подается на не инверсный вход ОУ LM358 A1.1, одновременно на инверсный вход подается регулирующее напряжение. ОУ сравнивает эти два сигнала и на его выходе меняется напряжение, которое подается на ШИМ генератор, таким образом осуществляется стабилизация выходного напряжения.
Для работы токовой стабилизации первоначально необходимо измерить ток нагрузки. Через шунт протекает ток нагрузки, на нем образуется падение напряжения (примерно 10 мВ на 1 А), это напряжение подается на ОУ LM358 А1.2 который имеет коэффициент усиления равным 100 (примерно). Усиленное напряжение шунта подается на инверсный вход компаратора LM393 A2.2, на другой не инверсный вход компаратора подается регулирующее напряжение. Если, для примера, регулирующее напряжение равно 1 В, а ток нагрузки превысит 1 А, то усиленное напряжение шунта будет больше 1 В, то произойдет переключение выхода компаратора, который в свою очередь управляет работой транзисторного ключа на BC557. Тем самым открытие BC557 приведет к снижению выходного напряжения, до уровня регулирующего напряжения в 1 В, так как при этом напряжении произойдет переключение компаратора. В режиме токовой стабилизации компаратор A2.2 будет постоянно переключаться, тем самым осуществляя токовою стабилизацию.
Управляющие напряжения для регулировки тока и напряжения находятся в пределах от 0 до 5 В, для регулировки используется два переменных резистора, на которые подается напряжение 5 В.
Напряжение на выходах «измерение ток» и «измерение напряжения» так же лежит в пределах от 0 до 5 В, что дает возможность использовать микроконтроллер для измерения выходного тока и напряжения.
Транзистор КТ827 должен быть установлен на теплоотвод. Дроссель — намотан на ферритовом кольце диаметром 30-35 мм, провод диаметром 1 — 1.2 мм, намотка в один слой до заполнения.
Ниже показана схема ШИМ регулятора с блоком измерения тока и напряжения.
Блок измерения тока и напряжения выполнен на платформе Arduino, плата контроллера основана на микроконтроллере LGT8F328 (LGT8F328P-LQFP32 MiniEVB). Этот микроконтроллер имеет 12-й битный АЦП, что дает возможность достаточно точно измерять ток и напряжение.
Как использовать плату в среде программирования Arduino IDE рассказано в — http://rcl-radio.ru/?p=129966
Вся информация о текущем напряжении и токе потребления нагрузки выводится на дисплей OLED 1.3 128×64 (чип драйвера — SH1106 I2C).
На дисплей выводится напряжение, ток и ток стабилизации. Дополнительно в схеме используется светодиод как индикатор стабилизации тока.
Регулировка и настройка ШИМ регулятора
Для нормальной работы ШИМ регулятора необходимо правильно подобрать резисторы делителя напряжения R10 R11. Выходное напряжение ШИМ регулятора может достигать 35-40 В, но при этом надо учитывать что выходное напряжение делителя не должно превышать 4,5 В. Так же следует обратить внимание на стабилизатор 7809, который имеет максимальное входное напряжение 35 В, поэтому при повышении входного напряжения ЩИМ регулятора до 35-45 В, напряжение на стабилизатор необходимо подавать через сопротивление 100-150 Ом, что бы напряжение питания стабилизатора не превышало максимально допустимого.
Далее при измерении тока необходимо подобрать коэффициент усиления ОУ путем подбора резистора R8, таким образом, чтобы при максимальном токе ШИМ регулятора напряжение на выходе ОУ А1.2 не превышало 4,5 В. В примере используется шунт с сопротивлением 0,01 Ом, что дает падение напряжения в 10 мВ на 1 А.
После сборки ШИМ регулятора необходимо настроить коэффициенты измерителей тока и напряжения:
#define KALL_I_IZ 0.435 #define KALL_U_IZ 0.620
Для настройки в выходу ШИМ регулятора подключите вольтметр, установите напряжение на выходе ШИМ регулятора 25 В, подстройкой коэффициента KALL_U_IZ добейтесь одинаковых показаний вольтметра и и измерителя напряжения.
Для настройки измерителя тока к выходу ШИМ регулятора подключите нагрузку. Ток нагрузки должен быть в пределах 70-90% от максимального тока ШИМ регулятора. Измерьте ток нагрузки амперметром, коэффициентом KALL_I_IZ добейтесь одинаковых показаний амперметра и измерителя тока.
Скетч
#define KALL_I_IZ 0.435 #define KALL_U_IZ 0.620 #include <Wire.h> #include <U8glib.h> // https://github.com/olikraus/u8glib/ U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); int n,m,m1; float i_dig,u_dig,i_dig1; float u_iz,i_iz,i_iz1; long i_sum,u_sum,i_sum1; bool w=1; void setup(){ delay(200); Wire.begin(); analogReadResolution(12);// АЦП 12 БИТ analogReference(DEFAULT); pinMode(A0,INPUT); pinMode(A1,INPUT); pinMode(A2,INPUT); pinMode(13,OUTPUT); u8g.firstPage(); do { u8g.setFont(u8g_font_profont12r); u8g.drawStr(30,10,"POWER SUPPLY"); u8g.drawStr(30,25,"0-30V 0-3A"); u8g.drawStr(30,55,"rcl-radio.ru"); } while( u8g.nextPage() ); delay(2000); } void loop(){ i_dig = analogRead(A0); i_sum = i_sum+i_dig; n++;if(n>9){n=0;i_iz=i_sum/10;i_sum=0;} u_dig = analogRead(A1); u_sum = u_sum+u_dig; m++;if(m>9){m=0;u_iz=u_sum/10;u_sum=0;w=1;} i_dig1 = analogRead(A2); i_sum1 = i_sum1+i_dig1; m1++;if(m1>9){m1=0;i_iz1=i_sum1/10;i_sum1=0;} if(i_iz*1.02>=i_iz1){digitalWrite(13,HIGH);}else{digitalWrite(13,LOW);} if(w==1){ u8g.firstPage(); do { u8g.drawLine(0, 26, 128, 26);u8g.drawLine(0, 53, 128, 53); u8g.setFont(u8g_font_profont29r); u8g.drawStr(0,22,"U");u8g.setPrintPos(35, 22);u8g.print(u_iz*KALL_U_IZ/100.0,1);u8g.drawStr(110,22,"V"); u8g.drawStr(0,50,"I");u8g.setPrintPos(35, 50);u8g.print(i_iz*KALL_I_IZ/1000.0,2);u8g.drawStr(110,50,"A"); u8g.setFont(u8g_font_profont12r); u8g.setPrintPos(75, 64);u8g.print(i_iz1*KALL_I_IZ/1000.0,2); u8g.drawStr(15,64,"I stab = ");u8g.drawStr(105,64,"A"); } while( u8g.nextPage() ); } }
Форум — http://forum.rcl-radio.ru/viewtopic.php?pid=9555#p9555