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