新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 機器人教程3:直流電機驅(qū)動及L298N模塊

機器人教程3:直流電機驅(qū)動及L298N模塊

作者: 時間:2016-12-01 來源:網(wǎng)絡(luò) 收藏

1)驅(qū)動效率的轉(zhuǎn)化

所謂驅(qū)動效率高,就是要將輸入的能量盡量多的輸出給負(fù)載,而驅(qū)動電路本身最好不消耗或少消耗能量,具體到H橋上,也就是4個橋臂在導(dǎo)通時最好沒有壓降,越小越好。從電路上看,這主要取決于“開關(guān)”上的壓降,其消耗為流過的電流乘以壓降,電流大小主要取決于負(fù)載電機的需要,所以對于設(shè)計來說重點應(yīng)考慮盡量減小開關(guān)上的電阻從而提高效率,而在選用驅(qū)動芯片時應(yīng)當(dāng)考慮所選用的芯片壓降是否滿足電機驅(qū)動力的需要,像參加過飛思卡爾智能車的朋友應(yīng)該清楚,一般很少有人選擇L298N芯片的,究其原因就是298N的自身壓降太大造成功率消耗太大而不滿足電機驅(qū)動需要造成的。

2)能夠通過的驅(qū)動電流

每個芯片都有自身承受的最大電流,在設(shè)計時應(yīng)保證電機的工作電流不會造成芯片的燒毀,像智能車制作過程中,電機的電流可以達到4-5A,而L298最大承受的電流不能超過2A,所以這也是一般不采用298N作為驅(qū)動芯片的另一個原因。

3)芯片的價格

對于器件的價格,一般在業(yè)余的制作基本不會考慮太多,但真正在產(chǎn)品的設(shè)計中,價格卻是除了性能外必須考慮的另一個關(guān)鍵因素,像剛剛上面提到了L298N由于自身壓降太大,所承受的電流太少,所以不滿足智能車電機的需要,所以有的朋友會說,298N芯片不好,不能說不好,要知道從價格上7970是298的3倍之多,像做一般速度比較低的機器人,298芯片完全能夠滿足要求。

綜上所述,在選擇驅(qū)動芯片應(yīng)從價格、驅(qū)動電流及壓降等方面給合考慮。

5、L298芯片及驅(qū)動模塊

L298N內(nèi)部的組成其就是上面講的H橋驅(qū)動電路,所以工作原理我以上介紹的H橋相同,這里我們不在敘述,在使用時重點要了解其引腳的功能和主要的性能參數(shù)。引腳圖如圖12所示。



圖12 L298N的引腳圖

L298N是ST公司生產(chǎn)的一種高電壓,大電流的電機驅(qū)動芯片。該芯片采用15腳封裝。主要特點是:工作電壓高,最高工作電壓可達46V,輸出電流大,瞬間峰值可達3A,持續(xù)工作電流為2A;額定功率為25W。內(nèi)含兩個H橋的高電壓大電流全橋式驅(qū)動器,可以用來驅(qū)動直流電機和步進電機、繼電器線圈等感性負(fù)載;采用標(biāo)準(zhǔn)邏輯電平信號控制;具有兩個用控制端,在不受輸入信號影響的情況下允許或禁止器件工作有一個邏輯電源輸入端,使內(nèi)部邏輯電路部分在低電壓下工作;可以外接檢測電阻,將變化量反饋給控制電路。使用L298N芯片驅(qū)動電機,該芯片可以驅(qū)動一臺兩相步進電機和四相步進電機,也可以兩臺直流電機。L298N模塊的驅(qū)動電路圖如圖13所示。



圖13 L298N電路圖

對于以上電路圖有以下幾點說明:

1)電路圖中有兩個電流,一路為L298工作需要的5V電源VCC,一路為驅(qū)動電機用的電池電源VSS。

2)1腳和15腳有的電路在中間串接了大功率的電阻,可以不加

3)八個續(xù)流二極管是為了消除電機轉(zhuǎn)動時的尖峰電壓保護電機而設(shè)計,簡化電路可以不加。

4)6腳和11腳為兩路電機通道的使能開關(guān),高電平使能所以可以直接接高電平,也可以交由單片機控制。

5)由于工作時L298的功率較大,可以適當(dāng)加裝散熱片。

L298模塊的的外形圖如圖14所示:



圖14 L298N模塊外形圖

6、電機正反轉(zhuǎn)程序

下面寫一個程序讓小車上一個電機正轉(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;

}

}

下面寫一個程序讓小車上兩個個電機正轉(zhuǎn),實現(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、雙電機差速轉(zhuǎn)向的原理

ZN-1A智能小車有兩種轉(zhuǎn)向的方式,差速轉(zhuǎn)向和舵機轉(zhuǎn)向。由于差速轉(zhuǎn)向目前市面上的資料和相關(guān)程序比較多,所以本教程絕大部分程序采用后輪驅(qū)動,前輪舵機實現(xiàn)轉(zhuǎn)向的控制方式。這里簡要介紹一下差速轉(zhuǎn)向的原理及方法,并給出一個簡單的程序,更復(fù)雜的程序請大家參考相關(guān)的資料,如可以利用ZN-1A智能小車實現(xiàn)小車的直立運動,即兩輪直立前行,目前世界上比較風(fēng)行的兩輪直代步車就是利用這種形式實現(xiàn),不過要要做兩輪直立時涉及到平衡的問題,需對加速度計和陀螺儀的知道有所了解,有興趣朋友可以利用本小車實現(xiàn)直立的功能,這里不多作介紹。

所謂的差速,是指左右兩車輪的速度差,假如左邊車輪比右邊的快,則小車會偏向右。同時,左的的車輪轉(zhuǎn)速比右的慢,那么小車會向左邊轉(zhuǎn)動。目前主要有以下兩種方式。

(1)小車向左轉(zhuǎn),可是是左輪停止,左輪繼續(xù)轉(zhuǎn)動,這樣可實現(xiàn)左轉(zhuǎn),這種方式實現(xiàn)小角度的轉(zhuǎn)彎,在角度不大時可采用此種方式。

(2)小車向左轉(zhuǎn),可以是左輪反轉(zhuǎn),右輪正轉(zhuǎn),這樣可以實現(xiàn)大角度的左轉(zhuǎn),甚至可以進行原地打轉(zhuǎn)。

同理可推出小車如何向右轉(zhuǎn)向。

下面給出一個利用后輪電機差事運動實現(xiàn)小車原地打轉(zhuǎn)的程序。

8、利用差速實現(xiàn)小原原地打轉(zhuǎn)程序


上一頁 1 2 3 下一頁

評論


技術(shù)專區(qū)

關(guān)閉