什么是H橋?H橋是一個比較簡單的電路,通常它會包含四個獨立控制的開關元器件(例如MOS-FET),它們通常用于驅(qū)動電流較大的負載,比如電機,至于為什么要叫H橋(H-Bridge),因為長得比較像字母H,具體如下圖所示;
這里有四個開關元器件Q1,Q2,Q3,Q4,另外還有一個直流電機M,D1,D2,D3,D4是MOS-FET的續(xù)流二極管;
開關狀態(tài)下面以控制一個直流電機為例,對H橋的幾種開關狀態(tài)進行簡單的介紹,其中正轉(zhuǎn)和反轉(zhuǎn)是人為規(guī)定的方向,實際工程中按照實際情況進行劃分即可;
正轉(zhuǎn)通常H橋用來驅(qū)動感性負載,這里我們來驅(qū)動一個直流電機;
打開Q1和Q4;
關閉Q2和Q3;
此時假設電機正轉(zhuǎn),這電流依次經(jīng)過Q1,M,Q4,在圖中使用黃色線段進行標注,具體如下圖所示;
正轉(zhuǎn)
反轉(zhuǎn)另外一種狀態(tài)則是電機反轉(zhuǎn);此時四個開關元器件的狀態(tài)如下;
關閉Q1和Q4;
打開Q2和Q3;
此時電機反轉(zhuǎn)(與前面介紹的情況相反),這電流依次經(jīng)過Q2,M,Q3,在圖中使用黃色線段進行標注,具體如下圖所示;
反轉(zhuǎn)
調(diào)速如果要對直流電機調(diào)速,其中的一種方案就是;
關閉Q2,Q3;
打開Q1,Q4上給它輸入50%占空比的PWM波形,這樣就達到了降低轉(zhuǎn)速的效果,如果需要增加轉(zhuǎn)速,則將輸入PWM的占空比設置為100%;
具體如下所示;
停止狀態(tài)這里以電機從正轉(zhuǎn)切換到停止狀態(tài)為例;
正轉(zhuǎn)情況下;Q1和Q4是打開狀態(tài);
這時候如果關閉Q1和Q4,直流電機內(nèi)部可以等效成電感,也就是感性負載,電流不會突變,那么電流將繼續(xù)保持原來的方向進行流動,這時候我們希望電機里的電流可以快速衰減;
這里有兩種辦法:
第一種:關閉Q1和Q4,這時候電流仍然會通過反向續(xù)流二極管進行流動,此時短暫打開Q1和Q3從而達到快速衰減電流的目的;
第二種:準備停止的時候,關閉Q1,打開Q2,這時候電流并不會衰減地很快,電流循環(huán)在Q2,M,Q4之間流動,通過MOS-FET的內(nèi)阻將電能消耗掉;
應用實際使用的時候,用分立元件制作H橋是很麻煩的,市面上已經(jīng)有很多比較常用的IC方案,比如常用的L293D、L298N、TA7257P、SN754410等。接上電源、電機,通過輸入控制信號就可以驅(qū)動電機了;
這個模塊有一個板載5V穩(wěn)壓器,該穩(wěn)壓器可使用跳線的方式進行使能。
如果電機電源電壓高達12V,我們可以啟用5V穩(wěn)壓器,并且5V引腳可以用作輸出,例如給Arduino板供電。
但是,如果電動機電壓大于12V,則必須斷開跳線,因為這些電壓會損壞板載5V穩(wěn)壓器。
在這種情況下,5V引腳將用作輸入,因為我們需要將其連接到5V電源,以使IC正常工作。
我們在這里可以注意到,該IC的電壓降約為2V。因此,如果使用12V電源,則電動機端子上的電壓約為10V,這意味著我們將無法從12V直流電動機中獲得最大速度。
#defineenA9
#definein16
#definein27
#definebutton4
introtDirection=0;
intpressed=false;
voidsetup(){
pinMode(enA,OUTPUT);
pinMode(in1,OUTPUT);
pinMode(in2,OUTPUT);
pinMode(button,INPUT);
//Setinitialrotationdirection
digitalWrite(in1,LOW);
digitalWrite(in2,HIGH);
}
voidloop(){
//Readpotentiometervalue
intpotValue=analogRead(A0);
//Mapthepotentiometervaluefrom0to255
intpwmOutput=map(potValue,0,1023,0,255);
//SendPWMsignaltoL298NEnablepin
analogWrite(enA,pwmOutput);
//Readbutton-Debounce
if(digitalRead(button)==true){
pressed=!pressed;
}
while(digitalRead(button)==true);
delay(20);
//Ifbuttonispressed-changerotationdirection
if(pressed==true&rotDirection==0){
digitalWrite(in1,HIGH);
digitalWrite(in2,LOW);
rotDirection=1;
delay(20);
}
//Ifbuttonispressed-changerotationdirection
if(pressed==false&rotDirection==1){
digitalWrite(in1,LOW);
digitalWrite(in2,HIGH);
rotDirection=0;
delay(20);
}
}
簡單描述一下:首先我們需要定義程序所需的引腳和變量。
在setup()中,我們需要設置引腳模式和電機的初始旋轉(zhuǎn)方向。
在loop()中,我們先讀取電位器值,然后將從中獲得的值從0到1023變化,線性映射到PWM信號的0到255的值,將其從0到100%的占空比。
然后使用analogWrite()函數(shù)將PWM信號發(fā)送到L298N板的Enable引腳,該引腳實際上驅(qū)動電動機。
接下來,我們檢查是否按下了按鈕,如果是的話,我們將輸入1和輸入2的狀態(tài)反置,從而改變電動機的旋轉(zhuǎn)方向。該按鈕將用作切換按鈕,每次按下該按鈕都會改變電動機的旋轉(zhuǎn)方向。
總結(jié)本文簡單介紹了H橋的原理,并以直流電機為例簡單介紹了驅(qū)動的狀態(tài),整體比較簡單,適合新手玩家,最后給出了基于Arduino和L298N的驅(qū)動示例,僅供參考。
簡單描述一下:首先我們需要定義程序所需的引腳和變量。
在setup()中,我們需要設置引腳模式和電機的初始旋轉(zhuǎn)方向。
在loop()中,我們先讀取電位器值,然后將從中獲得的值從0到1023變化,線性映射到PWM信號的0到255的值,將其從0到100%的占空比。
然后使用analogWrite()函數(shù)將PWM信號發(fā)送到L298N板的Enable引腳,該引腳實際上驅(qū)動電動機。
接下來,我們檢查是否按下了按鈕,如果是的話,我們將輸入1和輸入2的狀態(tài)反置,從而改變電動機的旋轉(zhuǎn)方向。該按鈕將用作切換按鈕,每次按下該按鈕都會改變電動機的旋轉(zhuǎn)方向。
總結(jié)本文簡單介紹了H橋的原理,并以直流電機為例簡單介紹了驅(qū)動的狀態(tài),整體比較簡單,適合新手玩家,最后給出了基于Arduino和L298N的驅(qū)動示例,僅供參考。
編輯:jq
-
電路
+關注
關注
172文章
5950瀏覽量
172600 -
元器件
+關注
關注
112文章
4736瀏覽量
92597 -
穩(wěn)壓器
+關注
關注
24文章
4254瀏覽量
93978 -
直流電機
+關注
關注
36文章
1710瀏覽量
70289
原文標題:干貨 | 深入淺出講解H橋驅(qū)動電路
文章出處:【微信號:電子工程世界,微信公眾號:電子工程世界】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論