專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

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

作者:huqin   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2013年12月31日   【字體:

1、直流電機簡介

2、設(shè)計中的三個關(guān)注點

3、H橋電路

4、驅(qū)動芯片選擇時考慮的問題

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

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

7、雙電機差速轉(zhuǎn)向的原理

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

 

1、直流電機簡介

直流電機是智能小車及機器人制作必不可少的組成部分,它主要作用是為系統(tǒng)提供必須的驅(qū)動力,用以實現(xiàn)其各種運動。目前市面的直流電機主要分為普通電機和帶動齒輪傳動機構(gòu)的直流減速電機。如圖1和圖2所示。

 

 


      圖1 日本馬步奇高速電機RS380            2 N20減速直流電機

 

對于不太追求速度的場合應(yīng)優(yōu)先選用減速直流電機,如足球機器和滅火機器人等追求功能而對速度要求不高的場合,如圖3,此車的傳動比通常為幾十到幾百左右。一般對同一型號的減速電機,廠家都會提供多種傳動比的產(chǎn)品提供給用戶,應(yīng)根據(jù)需要加以選擇。

 



3 普通減速電機應(yīng)用

而對于普通直流電機,由于轉(zhuǎn)速比較高,具體應(yīng)用時應(yīng)加齒輪傳動機構(gòu),當(dāng)然也可以直接選擇減速直流電機,但如果對于一些速度要求比較高的應(yīng)用,如飛思卡爾智能車車模,由于該比賽屬于競速賽,對速度要求比較高,市面上一般很難找到合適的減速電機,此時就需要自己設(shè)計減速機構(gòu),如圖4為飛思卡爾的電機和減速機構(gòu)圖,此傳動機構(gòu)傳動比為110左右,使得小車在空載的情況下可達到上千轉(zhuǎn)。

 



4 飛思卡爾智能車B車模

無論是普通直流電機還是減速電機,其電機部分目前基本都是無刷直流電機,關(guān)于什么叫無電機以及內(nèi)部結(jié)構(gòu)如何,這里我們不去深究,下面重點介紹一下直流電機在實際使用過程在硬件的設(shè)計及軟件的編寫中應(yīng)當(dāng)關(guān)注的三個方面,這里的前提是你已經(jīng)根據(jù)需要選擇好了合適傳動比的電機。

2、設(shè)計中的三個關(guān)注點

1)          如何增大驅(qū)動

2)          如何實現(xiàn)換向

3)          如何實現(xiàn)調(diào)速

對于第一個問題,主要原因是電機屬于大功率的器件,而單片機的I/O口所提供的電流往往十萬有限,所以必須外加驅(qū)動電路,比如說由三極管組成放大電路。

對于第二個問題,直流電機的方向改變需要改變電機的極性,即正負反接,但目前大多數(shù)機器人制作中使用的是直流無刷電機,由于沒有電刷,而供電電源通常又為單電源,所以需要設(shè)計一個電子開關(guān)以實現(xiàn)換向功能。

對于第三個問題,機器人是一個需適應(yīng)不同環(huán)境的智能體,其運動速度需要不斷的改變,此時就需要想法設(shè)計相應(yīng)電路以實現(xiàn)調(diào)速度。

上面的三個問題是電機控制中必須要考慮的問題,可以通過硬件的方法實現(xiàn),也可以通過軟件的方法實現(xiàn),當(dāng)然也可以采取硬軟結(jié)合的方法解決。目前比較通用的方法是,設(shè)計H橋電路利用單片機產(chǎn)生PWM波信號。

H橋電路是用硬件的方法設(shè)計一個電路,它可以解決前面兩個問題。而第三個問題速度的調(diào)節(jié)則是通過軟件的方法,利用單片機I/O口生產(chǎn)PWM波信號加以實現(xiàn)。

這一節(jié)我們主要介紹H橋電路,后面的章節(jié)我們會專門介紹到PWM調(diào)速問題。

3H橋電路

電機做好后后引出兩個極,如圖5所示,給兩個極能電就能夠?qū)崿F(xiàn)其轉(zhuǎn)動,而改變其電源極性剛可以實現(xiàn)換向。

 



5 減速電機及電路圖

前面我們說過必須要解決驅(qū)動力不足和換向問題,設(shè)計一般會采用兩種方法,一是設(shè)計由分離元件組成的驅(qū)動電路實現(xiàn),另一種方法則是采用專用的驅(qū)動芯片加以實現(xiàn)。由于專用的驅(qū)動芯片由于結(jié)構(gòu)簡單、價格便宜、可靠性高等特點,因而被廣泛的應(yīng)用實現(xiàn)電機的驅(qū)動。電機的驅(qū)動芯片很多如L298NBST7970MC33886等,這里我們介紹智能機器人中比較常用的LM298N驅(qū)動模塊,BST7970MC33886一般在電機功率比較大的場合適用。在介紹LM298N驅(qū)動模塊之前,我們先介紹一下H橋電路,需要說明的是時,在下面的電路由于內(nèi)部采用了三極管,三極管本身起到放大的作用,即增大了驅(qū)動電流,所以在下面的講解中我們主要側(cè)重講解如何實現(xiàn)換向功能。

H橋電路可以用如圖6來表示其原理:

 

 

 

圖6 H橋簡單電路

從圖中可以看出,其形狀類似于字母“H,作為負載的直流電機像“橋”一樣架在上面,所以稱為“H橋驅(qū)動”,4個開關(guān)所在的位置就稱為“橋臂”。

 

從圖中可以看出,假設(shè)開關(guān)A、D接通,電機正向轉(zhuǎn)動,而開關(guān)BC接通時,直流電機將反向轉(zhuǎn)動,從而實現(xiàn)了電機的正反控制。當(dāng)然實際應(yīng)用中我們還可以得到其它兩種狀態(tài):

1)剎車,即將ACB、D接通,則電機慣性轉(zhuǎn)動產(chǎn)生的電動勢將被短路,形成阻礙運動的感應(yīng)電流,開成“剎車”作用。

2)惰行,4個開關(guān)全部斷開,則電機慣性所產(chǎn)生的電動勢將無法開成電路,從而也就不會產(chǎn)生阻礙運動的感應(yīng)電流,電機將慣性轉(zhuǎn)動較長時間。

以上電路只是說明的原理,實際電路中我們通常將來四個開關(guān)換成三極管。如圖7所示,H橋式電機驅(qū)動電路包括4個三極管和一個電機。要使電機運轉(zhuǎn),必須導(dǎo)通對角線上的一對三極管。根據(jù)不同三極管對的導(dǎo)通情況,電流可能會從左至右或從右至左流過電機,從而控制電機的轉(zhuǎn)向。由于H橋電路可以很方便的實現(xiàn)電機的正反轉(zhuǎn)的驅(qū)動因而得到了廣泛應(yīng)用。

 



7 典型的H橋電路

要使電機運轉(zhuǎn),必須使對角線上的一對三極管導(dǎo)通。例如,如圖圖8所示,當(dāng)Q1管和Q4管導(dǎo)通時,電流就從電源正極經(jīng)Q1從左至右穿過電機,然后再經(jīng)Q4回到電源負極。按圖中電流箭頭所示,該流向的電流將驅(qū)動電機順時針轉(zhuǎn)動。當(dāng)三極管Q1Q4導(dǎo)通時,電流將從左至右流過電機,從而驅(qū)動電機按特定的方向轉(zhuǎn)動。

9所示為另一對三極管Q2Q3導(dǎo)通的情況,電流從右至左流過電機。當(dāng)三極管Q2Q3導(dǎo)通時,電流將從右至左流過電機,從而驅(qū)動電機沿另一方向轉(zhuǎn)動。

這里需要注意的是,電機一般會引出兩個極,但并無正負之分,所謂的正反轉(zhuǎn)也只是我們?nèi)藶槎x,具體要看實際的應(yīng)用和安裝情況。

 



8 電機正轉(zhuǎn) 
 9 電機反轉(zhuǎn)

 

驅(qū)動電機時,保證H橋上兩個同側(cè)的三極管不會同時導(dǎo)通非常重要,如果三極管Q1Q2同時導(dǎo)通,那么電流就會從正極穿過兩個三極管直接回到負極,此時電路中除了三極管外沒有其它任何負載,因此電路上的電流就可能達到最大值(該電流僅受電源性能限制),甚至燒壞三極管;谏鲜鲈,在實際驅(qū)動電路中通常要用硬件電路方便地控制三極管的開關(guān)。

     10所示就是基于這種考慮的改進電路,它在基本的H橋電路的基礎(chǔ)上增加了4個與門和2個非門。4個與門同一個使能導(dǎo)通信號相接,這樣,用這一個信號就能控制整個電路的開關(guān)。而2個非門通過提供一種方向輸入,可以保證任何時候在H橋的同側(cè)都只有一個三極管導(dǎo)通。

 


10 改進后的H橋驅(qū)動電路

采用以上方法,電機的運轉(zhuǎn)只需要三個信號控制,如圖11:兩個方向信號和一個使能信號。如果DIRL信號為0,DIRR信號為1,并且使能信號是1,那么三極管Q1Q4導(dǎo)通,電流從左至右流經(jīng)電機,如圖6 所示;如果DIRL信號變?yōu)?/span>1,而DIRR信號變?yōu)?/span>0。那么Q2Q3將導(dǎo)通,電流則反向流過電機。

 



11 驅(qū)動電機轉(zhuǎn)動時的信號示意圖

4、驅(qū)動芯片選擇時考慮的問題

H橋電路雖然有著許多的優(yōu)點,但是在實際的制作過程中,由于元件較多,電路和搭建也較為麻煩,增加了硬件設(shè)計的復(fù)雜度。所絕大多數(shù)制作中通常直接選用專用的驅(qū)動芯片。目前市面上專用的驅(qū)動芯片很多,如上面提到的L298NBST7970、MC33886等,但到底我們應(yīng)該選用哪咱芯片呢,當(dāng)然每種芯片有自己的優(yōu)勢,我們應(yīng)該根據(jù)設(shè)計需要從價格和性能上綜合考慮才行,這里談三個方面。

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

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

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

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

3)芯片的價格

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

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

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

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

 



12 L298N的引腳圖

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

 



圖13 L298N
電路圖

 

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

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

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

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

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

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

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

 



14  L298N模塊外形圖

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

下面寫一個程序讓小車上一個電機正轉(zhuǎn)。

#include<reg52.h>

 

#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<reg52.h>

 

#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)程序

關(guān)閉窗口

相關(guān)文章