機(jī)器人教程3:直流電機(jī)驅(qū)動(dòng)及L298N模塊
1)驅(qū)動(dòng)效率的轉(zhuǎn)化
所謂驅(qū)動(dòng)效率高,就是要將輸入的能量盡量多的輸出給負(fù)載,而驅(qū)動(dòng)電路本身最好不消耗或少消耗能量,具體到H橋上,也就是4個(gè)橋臂在導(dǎo)通時(shí)最好沒有壓降,越小越好。從電路上看,這主要取決于“開關(guān)”上的壓降,其消耗為流過的電流乘以壓降,電流大小主要取決于負(fù)載電機(jī)的需要,所以對于設(shè)計(jì)來說重點(diǎn)應(yīng)考慮盡量減小開關(guān)上的電阻從而提高效率,而在選用驅(qū)動(dòng)芯片時(shí)應(yīng)當(dāng)考慮所選用的芯片壓降是否滿足電機(jī)驅(qū)動(dòng)力的需要,像參加過飛思卡爾智能車的朋友應(yīng)該清楚,一般很少有人選擇L298N芯片的,究其原因就是298N的自身壓降太大造成功率消耗太大而不滿足電機(jī)驅(qū)動(dòng)需要造成的。
2)能夠通過的驅(qū)動(dòng)電流
每個(gè)芯片都有自身承受的最大電流,在設(shè)計(jì)時(shí)應(yīng)保證電機(jī)的工作電流不會造成芯片的燒毀,像智能車制作過程中,電機(jī)的電流可以達(dá)到4-5A,而L298最大承受的電流不能超過2A,所以這也是一般不采用298N作為驅(qū)動(dòng)芯片的另一個(gè)原因。
3)芯片的價(jià)格
對于器件的價(jià)格,一般在業(yè)余的制作基本不會考慮太多,但真正在產(chǎn)品的設(shè)計(jì)中,價(jià)格卻是除了性能外必須考慮的另一個(gè)關(guān)鍵因素,像剛剛上面提到了L298N由于自身壓降太大,所承受的電流太少,所以不滿足智能車電機(jī)的需要,所以有的朋友會說,298N芯片不好,不能說不好,要知道從價(jià)格上7970是298的3倍之多,像做一般速度比較低的機(jī)器人,298芯片完全能夠滿足要求。
綜上所述,在選擇驅(qū)動(dòng)芯片應(yīng)從價(jià)格、驅(qū)動(dòng)電流及壓降等方面給合考慮。
5、L298芯片及驅(qū)動(dòng)模塊
L298N內(nèi)部的組成其就是上面講的H橋驅(qū)動(dòng)電路,所以工作原理我以上介紹的H橋相同,這里我們不在敘述,在使用時(shí)重點(diǎn)要了解其引腳的功能和主要的性能參數(shù)。引腳圖如圖12所示。
圖12 L298N的引腳圖
L298N是ST公司生產(chǎn)的一種高電壓,大電流的電機(jī)驅(qū)動(dòng)芯片。該芯片采用15腳封裝。主要特點(diǎn)是:工作電壓高,最高工作電壓可達(dá)46V,輸出電流大,瞬間峰值可達(dá)3A,持續(xù)工作電流為2A;額定功率為25W。內(nèi)含兩個(gè)H橋的高電壓大電流全橋式驅(qū)動(dòng)器,可以用來驅(qū)動(dòng)直流電機(jī)和步進(jìn)電機(jī)、繼電器線圈等感性負(fù)載;采用標(biāo)準(zhǔn)邏輯電平信號控制;具有兩個(gè)用控制端,在不受輸入信號影響的情況下允許或禁止器件工作有一個(gè)邏輯電源輸入端,使內(nèi)部邏輯電路部分在低電壓下工作;可以外接檢測電阻,將變化量反饋給控制電路。使用L298N芯片驅(qū)動(dòng)電機(jī),該芯片可以驅(qū)動(dòng)一臺兩相步進(jìn)電機(jī)和四相步進(jìn)電機(jī),也可以兩臺直流電機(jī)。L298N模塊的驅(qū)動(dòng)電路圖如圖13所示。
圖13 L298N電路圖
對于以上電路圖有以下幾點(diǎn)說明:
1)電路圖中有兩個(gè)電流,一路為L298工作需要的5V電源VCC,一路為驅(qū)動(dòng)電機(jī)用的電池電源VSS。
2)1腳和15腳有的電路在中間串接了大功率的電阻,可以不加
3)八個(gè)續(xù)流二極管是為了消除電機(jī)轉(zhuǎn)動(dòng)時(shí)的尖峰電壓保護(hù)電機(jī)而設(shè)計(jì),簡化電路可以不加。
4)6腳和11腳為兩路電機(jī)通道的使能開關(guān),高電平使能所以可以直接接高電平,也可以交由單片機(jī)控制。
5)由于工作時(shí)L298的功率較大,可以適當(dāng)加裝散熱片。
L298模塊的的外形圖如圖14所示:
圖14 L298N模塊外形圖
6、電機(jī)正反轉(zhuǎn)程序
下面寫一個(gè)程序讓小車上一個(gè)電機(jī)正轉(zhuǎn)。
#include #define uint unsigned int #define uchar unsigned char sbit PWM1=P2^0;//接IN1控制正轉(zhuǎn) sbit PWM2=P2^1;//接IN2控制反轉(zhuǎn) void main() { while(1) { PWM1=1; PWM2=0; } } 下面寫一個(gè)程序讓小車上兩個(gè)個(gè)電機(jī)正轉(zhuǎn),實(shí)現(xiàn)小車的前行。 #include #define uint unsigned int #define uchar unsigned char sbit PWM1=P2^0;//接IN1控制正轉(zhuǎn) sbit PWM2=P2^1;//接IN2控制反轉(zhuǎn) sbit PWM3=P2^2;//接IN1控制正轉(zhuǎn) sbit PWM4=P2^3;//接IN2控制反轉(zhuǎn) sbit PWM5=P2^4;//接IN1控制正轉(zhuǎn) sbit PWM6=P2^5;//接IN2控制反轉(zhuǎn) sbit PWM7=P2^6;//接IN1控制正轉(zhuǎn) sbit PWM8=P2^7;//接IN2控制反轉(zhuǎn) void main() { while(1) { PWM1=1; PWM2=0; PWM3=1; PWM4=0; PWM5=1; PWM6=0; PWM7=1; PWM8=0; } } void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=500;y>0;y--); } 7、雙電機(jī)差速轉(zhuǎn)向的原理 ZN-1A智能小車有兩種轉(zhuǎn)向的方式,差速轉(zhuǎn)向和舵機(jī)轉(zhuǎn)向。由于差速轉(zhuǎn)向目前市面上的資料和相關(guān)程序比較多,所以本教程絕大部分程序采用后輪驅(qū)動(dòng),前輪舵機(jī)實(shí)現(xiàn)轉(zhuǎn)向的控制方式。這里簡要介紹一下差速轉(zhuǎn)向的原理及方法,并給出一個(gè)簡單的程序,更復(fù)雜的程序請大家參考相關(guān)的資料,如可以利用ZN-1A智能小車實(shí)現(xiàn)小車的直立運(yùn)動(dòng),即兩輪直立前行,目前世界上比較風(fēng)行的兩輪直代步車就是利用這種形式實(shí)現(xiàn),不過要要做兩輪直立時(shí)涉及到平衡的問題,需對加速度計(jì)和陀螺儀的知道有所了解,有興趣朋友可以利用本小車實(shí)現(xiàn)直立的功能,這里不多作介紹。 所謂的差速,是指左右兩車輪的速度差,假如左邊車輪比右邊的快,則小車會偏向右。同時(shí),左的的車輪轉(zhuǎn)速比右的慢,那么小車會向左邊轉(zhuǎn)動(dòng)。目前主要有以下兩種方式。 (1)小車向左轉(zhuǎn),可是是左輪停止,左輪繼續(xù)轉(zhuǎn)動(dòng),這樣可實(shí)現(xiàn)左轉(zhuǎn),這種方式實(shí)現(xiàn)小角度的轉(zhuǎn)彎,在角度不大時(shí)可采用此種方式。 (2)小車向左轉(zhuǎn),可以是左輪反轉(zhuǎn),右輪正轉(zhuǎn),這樣可以實(shí)現(xiàn)大角度的左轉(zhuǎn),甚至可以進(jìn)行原地打轉(zhuǎn)。 同理可推出小車如何向右轉(zhuǎn)向。 下面給出一個(gè)利用后輪電機(jī)差事運(yùn)動(dòng)實(shí)現(xiàn)小車原地打轉(zhuǎn)的程序。 8、利用差速實(shí)現(xiàn)小原原地打轉(zhuǎn)程序
評論