一、引言
直流電機是將直流電能轉(zhuǎn)換成機械能(直流電動機)或?qū)C械能轉(zhuǎn)換成直流電能(直流發(fā)電機)的旋轉(zhuǎn)電機。
直流電機具有優(yōu)良的調(diào)速特性,調(diào)速平滑,方便,調(diào)速范圍廣,過載能力強,能承受頻繁的沖擊負載,可實現(xiàn)頻繁的無極快速起動、制動和反轉(zhuǎn),因為需要滿足生產(chǎn)過程自動化系統(tǒng)各種不同的特殊要求,從而對直流電機提出了較高的要求,改變電樞回路電阻調(diào)速、改變電壓調(diào)速等技術(shù)已遠遠不能滿足現(xiàn)代科技的要求,這時候通過PWM方式控制直流電機調(diào)速的方法就應(yīng)運而生。
采取傳統(tǒng)的調(diào)速系統(tǒng)主要有以下的缺陷:模擬電路容易隨時間飄移,會產(chǎn)生一些不必要的熱損耗,以及對噪聲敏感等。而用PWM技術(shù)后,避免上述的缺點,實現(xiàn)了數(shù)字式控制模擬信號,可以大幅度減低成本和功耗。
二、H橋驅(qū)動原理
圖1中所示為一個典型的直流電機控制電路。電路得名于“H橋驅(qū)動電路”是因為它的形狀酷似字母H。4個三極管組成H的4條垂直腿,而電機就是H中的橫杠。
如圖1所示,H橋式電機驅(qū)動電路包括4個三極管和一個電機。要使電機運轉(zhuǎn),必須導(dǎo)通對角線上的一對三極管。根據(jù)不同三極管對的導(dǎo)通情況,電流可能會從左至右或從右至左流過電機,從而控制電機的轉(zhuǎn)向。
要使電機運轉(zhuǎn),必須使對角線上的一對三極管導(dǎo)通。例如,如圖2所示,當(dāng)Q1管和Q4管導(dǎo)通時,電流就從電源正極經(jīng)Q1從左至右穿過電機,然后再經(jīng)Q4回到電源負極。按圖中電流箭頭所示,該流向的電流將驅(qū)動電機順時針轉(zhuǎn)動。當(dāng)三極管Q1和Q4導(dǎo)通時,電流將從左至右流過電機,從而驅(qū)動電機按特定方向轉(zhuǎn)動(電機周圍的箭頭指示為順時針方向)。
另一對三極管Q2和Q3導(dǎo)通的情況,電流將從右至左流過電機。當(dāng)三極管Q2和Q3導(dǎo)通時,電流將從右至左流過電機,從而驅(qū)動電機沿另一方向轉(zhuǎn)動(逆時針方向)如圖3所示。
三、L298N H橋驅(qū)動芯片介紹
L298N為SGS所出產(chǎn)的雙全橋步進電機專用驅(qū)動芯片,是一種二相和四相步進電機的專用驅(qū)動器,可同時驅(qū)動2個二相或1個四相步進電機,內(nèi)含二個H-Bridge的高電壓、大電流雙全橋式驅(qū)動器,接收標準TTL邏輯信號,可驅(qū)動46V、2A以下的步進電機。其應(yīng)用如圖4所示:
OUT1~OUT4之間接2個電動機。IN1,IN2,IN3,IN4從單片機引入控制電平,控制電機的正反轉(zhuǎn),ENA,ENB,接控制使能端,控制電機的停轉(zhuǎn)。
對于電機的調(diào)速,我們采用PWM調(diào)速的方法。其原理就是開關(guān)管在一個周期內(nèi)的導(dǎo)通時間為t,周期為T,則電機兩端電壓為U=Vcc*(t/T)=kVcc。
其中,k是占空比,Vcc是電源電壓,占空比越大,電機轉(zhuǎn)的越快。PWM配合橋式驅(qū)動電路,實現(xiàn)直流電機調(diào)速非常簡單,且調(diào)速范圍大。
四、軟件設(shè)計
編程部分采用KELI-C51語言完成,采用模塊化的設(shè)計方法,劃分成成鍵盤輸入、按鍵識別和功能、PWM脈寬控制等模塊,現(xiàn)將主要函數(shù)做簡單介紹。
①PWM脈寬控制:本設(shè)計中采用軟件延時方式對脈沖寬度進行控制,延時程序函數(shù)如下:
delays()
{
uchar i;
for(i=5000;i>0;i--);
}
②鍵盤中斷處理子程序:采用中斷方式,按下鍵,完成延時去抖動、鍵碼識別、按鍵功能執(zhí)行。
要實現(xiàn)按住加/減速鍵不放時恒加或恒減速直到放開停止,就需在判斷是否松開該按鍵時,每進行一次增加/減少一定的占空比。
中斷程序?qū)崿F(xiàn)如下:
uchar f=5;//計數(shù)的次數(shù)
sbit P10=P1^0;//PWM輸出波形1
sbit P11=P1^1;//PWM輸出波形2
sbit P12=P1^2;//正反轉(zhuǎn)
sbit P13=P1^3;//加速
sbit P14=P1^4;//減速
sbit P15=P1^5;//停止
sbit P16=P1^6;//啟動
void t0()interrupt 1 using 2
{
TH0=0xb1;//重裝t0
TL0=0xe0;
f--;
if(k==0)//控制正反轉(zhuǎn)
{
……
}
else
{
……
}
if(f==0)//輸出脈沖,重新裝t0初值
{
……
display();//顯示功能
}
}
五、小結(jié)
該方法經(jīng)過驗證,達到直流電機調(diào)速效果,而且效果良好,用示波器可觀察到PWM驅(qū)動波形。
參考文獻
[1]高衛(wèi)東.51單片機原理與實踐[J].北京航空航天大學(xué),2011.
[2]王志新.電機控制技術(shù)[M].機械工業(yè)出版社,2010.
[3]L298N中文數(shù)據(jù)手冊[S].