大家好,很高興和各位一起分享我第 108 篇原創(chuàng)文章,喜歡和支持我的工程師,一定記得給我點贊、收藏、分享喲。
加微信【jiyuyun18】與作者溝通交流
實驗?zāi)康?/h1>
學(xué)習(xí)升壓(Boost)型直流開關(guān)電源的基本原理。
實驗原理
給一個電感通電,然后迅速斷電,電感的開路一側(cè)會出現(xiàn)高電壓。不理解的可閱讀 開關(guān)電源的故事-起源-電感毛刺 。
我們可以用下面這個由一個電感和一個開關(guān)組成的簡單電路來學(xué)習(xí)一下電感的升壓原理。下圖是電路圖:
圖1-電感升壓實驗電路
下圖是在面包板上組裝好的電路:
圖2-面包板上的電感升壓電路
下面是按下按鈕然后迅速松開后的波形截圖:
圖3-電感升壓波形
可以看到 5V 電壓在電感開路一側(cè)被升高到了 130V。
在這個簡單的電感升壓電路后面加一個二極管和電容就構(gòu)成了經(jīng)典的升壓型直流-直流開關(guān)電源(switched-mode boost DC-DC power supply):
圖4-經(jīng)典升壓型直流-直流開關(guān)電源原理圖
當(dāng)開關(guān)閉合期間,由于二極管右側(cè)電壓高于左側(cè),二極管可以防止電容存儲的電能通過開關(guān)向電源放電。電容用于減小開關(guān)電源紋波,起穩(wěn)壓濾波的作用。
實驗電路
我們使用 Arduino UNO 來產(chǎn)生控制 PWM 信號,開關(guān)我們使用 N 溝道場效應(yīng)管 IRFZ44N。N 溝道場效管的 Gate 極在輸入低電平 時場管的 Drain 極和 Source 極會關(guān)閉,反之, Gate 極輸入高電平 ,Drain 極和 Source 極會導(dǎo)通。
實驗電路原理圖如下:
圖5-基于Arduino的升壓型直流-直流開關(guān)電源
Arduino A0 引腳接可調(diào)電阻,用于調(diào)節(jié)輸出電壓。
A1 接反饋信號,由于使用了 1k 和 8k 電阻分壓,實際輸出電壓是此電壓的 9 倍。
D3 引腳接輸出 PWM 控制信號,輸出高電平時場管導(dǎo)通,輸出低電平時場管關(guān)閉。
可調(diào)電阻輸出 5V 時,輸出電壓最大,為 5V*9=45V。
下面是 Arduino 代碼:
/*
* 這是使用 Arduino 制作的帶反饋的升壓型(Boost)直流開關(guān)電源示例代碼。
* 使用 Arduino UNO.
* D3: 輸出控制 PWM 信號。
* A1: 接反饋信號。
* A0: 接可調(diào)電阻。用于調(diào)節(jié)輸出電壓。
* 歡迎搜索并關(guān)注薇信公號:飛多學(xué)堂。學(xué)習(xí)更多電子知識和示波器使用技巧。
*/
int potentiometer = A0; // 輸入引腳:可調(diào)電阻,接A0。
int feedback = A1; // 輸入引腳:反饋信號,接A1。
int PWM = 3; // 輸出引腳:PWM 控制信號,接D3。
int pwm = 0; // 要寫入到 PWM 的值,0:輸出方波占空比 0%(低電平);255:方波占空比 100%(高電平)
// 本實驗中使用的是 N 溝道場效應(yīng)管,低電平關(guān)閉,高電平導(dǎo)通
// PWM 引腳輸出高電平->場管打開->電感導(dǎo)通;
// PWM 引腳輸出低電平->場管關(guān)閉->電感截止;
// 電感導(dǎo)通的時間越長,關(guān)閉時輸出的電壓越高。
// 增加 PWM 占空比->增加場管導(dǎo)通的時間->增加電感導(dǎo)通時間->增加關(guān)閉時的瞬間電壓->增加輸出電壓
void setup() {
// put your setup code here, to run once:
pinMode(potentiometer, INPUT); // 引腳設(shè)置為輸入
pinMode(feedback, INPUT); // 引腳設(shè)置為輸入
pinMode(PWM, OUTPUT); // 引腳設(shè)置為輸出
// 引腳3和11,PWM 信號頻率:31.37255Hz
TCCR2B = TCCR2B & B11111000 | B00000001;
Serial.begin(9600); // open the serial port at 9600 bps:
}
void loop() {
// put your main code here, to run repeatedly:
// 讀取可調(diào)電阻電壓,也就是期望電壓,
float voltage = analogRead(potentiometer);
// 讀取反饋電壓,來自于實際電壓,因為使用了1k和8.2k電阻分壓,所以實際電壓是反饋電壓的10倍
float output = analogRead(feedback);
Serial.print("voltage=");Serial.print(voltage);
Serial.print(",output=");Serial.print(output);
// 如果輸出電壓低于期望電壓,增加 PWM 信號占空比,增加電感導(dǎo)通時間,提高電感關(guān)斷時的電壓,進而提高輸出電壓
if (output < voltage)
{
pwm = pwm + 1;
pwm = constrain(pwm, 1, 254);
}
// 如果輸出電壓高于期望電壓,減小 PWM 信號占空比,減小電感導(dǎo)通時間,降低電感關(guān)斷時的電壓,進而降低輸出電壓
else if (output > voltage)
{
pwm = pwm - 1;
pwm = constrain(pwm, 1, 254);
}
analogWrite(PWM, pwm);
Serial.print(",pwm=");Serial.print(pwm);
Serial.println();
}
程序不停對可調(diào)電阻的電壓 voltage 和輸出電壓的 1/9 output進行比較,當(dāng) voltage < output 時,增大 PWM 信號占空比,提高輸出電壓;當(dāng) voltage > output 時,減小占空比,降低輸出電壓。
實驗步驟
1.在面包板上搭建電路:
圖6-面包板上的基于Arduino的升壓型直流-直流開關(guān)電源
2.示波器波形圖如下:
圖7-基于Arduino的升壓型直流-直流開關(guān)電源波形動圖
可以看到隨著 PWM 控制信號占空比的增加,電感輸出電壓逐漸增大,最高可達 34.8V。
實驗結(jié)論
升壓型直流開關(guān)電源是利用了通電后的電感突然斷開,在開路的一側(cè)會出現(xiàn)電壓升高這一特性而實現(xiàn)的,并且,通電時間越長,電感斷開時出現(xiàn)的瞬間電壓越高。