1、直流電機簡介
2、設計中的三個(ge) 關(guan) 注點
3、H橋電路
4、驅動芯片選擇時考慮的問題
5、L298芯片及驅動模塊
6、電機正反轉程序
7、雙電機差速轉向的原理
8、利用差速實現小原原地打轉程序
1、直流電機簡介
直流電機是智能小車及機器人製作必不可少的組成部分,它主要作用是為(wei) 係統提供必須的驅動力,用以實現其各種運動。目前市麵的直流電機主要分為(wei) 普通電機和帶動齒輪傳(chuan) 動機構的直流減速電機。如圖1和圖2所示。
圖1 日本馬步奇高速電機RS380 圖2 N20減速直流電機
對於(yu) 不太追求速度的場合應優(you) 先選用減速直流電機,如足球機器和滅火機器人等追求功能而對速度要求不高的場合,如圖3,此車的傳(chuan) 動比通常為(wei) 幾十到幾百左右。一般對同一型號的減速電機,廠家都會(hui) 提供多種傳(chuan) 動比的產(chan) 品提供給用戶,應根據需要加以選擇。
而對於(yu) 普通直流電機,由於(yu) 轉速比較高,具體(ti) 應用時應加齒輪傳(chuan) 動機構,當然也可以直接選擇減速直流電機,但如果對於(yu) 一些速度要求比較高的應用,如飛思卡爾智能車車模,由於(yu) 該比賽屬於(yu) 競速賽,對速度要求比較高,市麵上一般很難找到合適的減速電機,此時就需要自己設計減速機構,如圖4為(wei) 飛思卡爾的電機和減速機構圖,此傳(chuan) 動機構傳(chuan) 動比為(wei) 1:10左右,使得小車在空載的情況下可達到上千轉。
無論是普通直流電機還是減速電機,其電機部分目前基本都是無刷直流電機,關(guan) 於(yu) 什麽(me) 叫無電機以及內(nei) 部結構如何,這裏我們(men) 不去深究,下麵重點介紹一下直流電機在實際使用過程在硬件的設計及軟件的編寫(xie) 中應當關(guan) 注的三個(ge) 方麵,這裏的前提是你已經根據需要選擇好了合適傳(chuan) 動比的電機。
2、設計中的三個(ge) 關(guan) 注點
1) 如何增大驅動
2) 如何實現換向
3) 如何實現調速
對於(yu) 第一個(ge) 問題,主要原因是電機屬於(yu) 大功率的器件,而單片機的I/O口所提供的電流往往十萬(wan) 有限,所以必須外加驅動電路,比如說由三極管組成放大電路。
對於(yu) 第二個(ge) 問題,直流電機的方向改變需要改變電機的極性,即正負反接,但目前大多數機器人製作中使用的是直流無刷電機,由於(yu) 沒有電刷,而供電電源通常又為(wei) 單電源,所以需要設計一個(ge) 電子開關(guan) 以實現換向功能。
對於(yu) 第三個(ge) 問題,機器人是一個(ge) 需適應不同環境的智能體(ti) ,其運動速度需要不斷的改變,此時就需要想法設計相應電路以實現調速度。
上麵的三個(ge) 問題是電機控製中必須要考慮的問題,可以通過硬件的方法實現,也可以通過軟件的方法實現,當然也可以采取硬軟結合的方法解決(jue) 。目前比較通用的方法是,設計H橋電路和利用單片機產(chan) 生PWM波信號。
H橋電路是用硬件的方法設計一個(ge) 電路,它可以解決(jue) 前麵兩(liang) 個(ge) 問題。而第三個(ge) 問題速度的調節則是通過軟件的方法,利用單片機I/O口生產(chan) PWM波信號加以實現。
這一節我們(men) 主要介紹H橋電路,後麵的章節我們(men) 會(hui) 專(zhuan) 門介紹到PWM調速問題。
3、H橋電路
電機做好後後引出兩(liang) 個(ge) 極,如圖5所示,給兩(liang) 個(ge) 極能電就能夠實現其轉動,而改變其電源極性剛可以實現換向。
前麵我們(men) 說過必須要解決(jue) 驅動力不足和換向問題,設計一般會(hui) 采用兩(liang) 種方法,一是設計由分離元件組成的驅動電路實現,另一種方法則是采用專(zhuan) 用的驅動芯片加以實現。由於(yu) 專(zhuan) 用的驅動芯片由於(yu) 結構簡單、價(jia) 格便宜、可靠性高等特點,因而被廣泛的應用實現電機的驅動。電機的驅動芯片很多如L298N、BST7970、MC33886等,這裏我們(men) 介紹智能機器人中比較常用的LM298N驅動模塊,BST7970、MC33886一般在電機功率比較大的場合適用。在介紹LM298N驅動模塊之前,我們(men) 先介紹一下H橋電路,需要說明的是時,在下麵的電路由於(yu) 內(nei) 部采用了三極管,三極管本身起到放大的作用,即增大了驅動電流,所以在下麵的講解中我們(men) 主要側(ce) 重講解如何實現換向功能。
H橋電路可以用如圖6來表示其原理:
從(cong) 圖中可以看出,其形狀類似於(yu) 字母“H”,作為(wei) 負載的直流電機像“橋”一樣架在上麵,所以稱為(wei) “H橋驅動”,4個(ge) 開關(guan) 所在的位置就稱為(wei) “橋臂”。
從(cong) 圖中可以看出,假設開關(guan) A、D接通,電機正向轉動,而開關(guan) B、C接通時,直流電機將反向轉動,從(cong) 而實現了電機的正反控製。當然實際應用中我們(men) 還可以得到其它兩(liang) 種狀態:
1)刹車,即將A、C或B、D接通,則電機慣性轉動產(chan) 生的電動勢將被短路,形成阻礙運動的感應電流,開成“刹車”作用。
2)惰行,4個(ge) 開關(guan) 全部斷開,則電機慣性所產(chan) 生的電動勢將無法開成電路,從(cong) 而也就不會(hui) 產(chan) 生阻礙運動的感應電流,電機將慣性轉動較長時間。
以上電路隻是說明的原理,實際電路中我們(men) 通常將來四個(ge) 開關(guan) 換成三極管。如圖7所示,H橋式電機驅動電路包括4個(ge) 三極管和一個(ge) 電機。要使電機運轉,必須導通對角線上的一對三極管。根據不同三極管對的導通情況,電流可能會(hui) 從(cong) 左至右或從(cong) 右至左流過電機,從(cong) 而控製電機的轉向。由於(yu) H橋電路可以很方便的實現電機的正反轉的驅動因而得到了廣泛應用。
要使電機運轉,必須使對角線上的一對三極管導通。例如,如圖圖8所示,當Q1管和Q4管導通時,電流就從(cong) 電源正極經Q1從(cong) 左至右穿過電機,然後再經Q4回到電源負極。按圖中電流箭頭所示,該流向的電流將驅動電機順時針轉動。當三極管Q1和Q4導通時,電流將從(cong) 左至右流過電機,從(cong) 而驅動電機按特定的方向轉動。
圖9所示為(wei) 另一對三極管Q2和Q3導通的情況,電流從(cong) 右至左流過電機。當三極管Q2和Q3導通時,電流將從(cong) 右至左流過電機,從(cong) 而驅動電機沿另一方向轉動。
這裏需要注意的是,電機一般會(hui) 引出兩(liang) 個(ge) 極,但並無正負之分,所謂的正反轉也隻是我們(men) 人為(wei) 定義(yi) ,具體(ti) 要看實際的應用和安裝情況。
驅動電機時,保證H橋上兩(liang) 個(ge) 同側(ce) 的三極管不會(hui) 同時導通非常重要,如果三極管Q1和Q2同時導通,那麽(me) 電流就會(hui) 從(cong) 正極穿過兩(liang) 個(ge) 三極管直接回到負極,此時電路中除了三極管外沒有其它任何負載,因此電路上的電流就可能達到最大值(該電流僅(jin) 受電源性能限製),甚至燒壞三極管。基於(yu) 上述原因,在實際驅動電路中通常要用硬件電路方便地控製三極管的開關(guan) 。
圖10所示就是基於(yu) 這種考慮的改進電路,它在基本的H橋電路的基礎上增加了4個(ge) 與(yu) 門和2個(ge) 非門。4個(ge) 與(yu) 門同一個(ge) 使能導通信號相接,這樣,用這一個(ge) 信號就能控製整個(ge) 電路的開關(guan) 。而2個(ge) 非門通過提供一種方向輸入,可以保證任何時候在H橋的同側(ce) 都隻有一個(ge) 三極管導通。
采用以上方法,電機的運轉隻需要三個(ge) 信號控製,如圖11:兩(liang) 個(ge) 方向信號和一個(ge) 使能信號。如果DIR-L信號為(wei) 0,DIR-R信號為(wei) 1,並且使能信號是1,那麽(me) 三極管Q1和Q4導通,電流從(cong) 左至右流經電機,如圖6 所示;如果DIR-L信號變為(wei) 1,而DIR-R信號變為(wei) 0。那麽(me) Q2和Q3將導通,電流則反向流過電機。
4、驅動芯片選擇時考慮的問題
H橋電路雖然有著許多的優(you) 點,但是在實際的製作過程中,由於(yu) 元件較多,電路和搭建也較為(wei) 麻煩,增加了硬件設計的複雜度。所絕大多數製作中通常直接選用專(zhuan) 用的驅動芯片。目前市麵上專(zhuan) 用的驅動芯片很多,如上麵提到的L298N、BST7970、MC33886等,但到底我們(men) 應該選用哪咱芯片呢,當然每種芯片有自己的優(you) 勢,我們(men) 應該根據設計需要從(cong) 價(jia) 格和性能上綜合考慮才行,這裏談三個(ge) 方麵。
1)驅動效率的轉化
所謂驅動效率高,就是要將輸入的能量盡量多的輸出給負載,而驅動電路本身最好不消耗或少消耗能量,具體(ti) 到H橋上,也就是4個(ge) 橋臂在導通時最好沒有壓降,越小越好。從(cong) 電路上看,這主要取決(jue) 於(yu) “開關(guan) ”上的壓降,其消耗為(wei) 流過的電流乘以壓降,電流大小主要取決(jue) 於(yu) 負載電機的需要,所以對於(yu) 設計來說重點應考慮盡量減小開關(guan) 上的電阻從(cong) 而提高效率,而在選用驅動芯片時應當考慮所選用的芯片壓降是否滿足電機驅動力的需要,像參加過飛思卡爾智能車的朋友應該清楚,一般很少有人選擇L298N芯片的,究其原因就是298N的自身壓降太大造成功率消耗太大而不滿足電機驅動需要造成的。
2)能夠通過的驅動電流
每個(ge) 芯片都有自身承受的最大電流,在設計時應保證電機的工作電流不會(hui) 造成芯片的燒毀,像智能車製作過程中,電機的電流可以達到4-5A,而L298最大承受的電流不能超過2A,所以這也是一般不采用298N作為(wei) 驅動芯片的另一個(ge) 原因。
3)芯片的價(jia) 格
對於(yu) 器件的價(jia) 格,一般在業(ye) 餘(yu) 的製作基本不會(hui) 考慮太多,但真正在產(chan) 品的設計中,價(jia) 格卻是除了性能外必須考慮的另一個(ge) 關(guan) 鍵因素,像剛剛上麵提到了L298N由於(yu) 自身壓降太大,所承受的電流太少,所以不滿足智能車電機的需要,所以有的朋友會(hui) 說,298N芯片不好,不能說不好,要知道從(cong) 價(jia) 格上7970是298的3倍之多,像做一般速度比較低的機器人,298芯片完全能夠滿足要求。
綜上所述,在選擇驅動芯片應從(cong) 價(jia) 格、驅動電流及壓降等方麵給合考慮。
5、L298芯片及驅動模塊
L298N內(nei) 部的組成其就是上麵講的H橋驅動電路,所以工作原理我以上介紹的H橋相同,這裏我們(men) 不在敘述,在使用時重點要了解其引腳的功能和主要的性能參數。引腳圖如圖12所示。
L298N是ST公司生產(chan) 的一種高電壓,大電流的電機驅動芯片。該芯片采用15腳封裝。主要特點是:工作電壓高,最高工作電壓可達46V,輸出電流大,瞬間峰值可達3A,持續工作電流為(wei) 2A;額定功率為(wei) 25W。內(nei) 含兩(liang) 個(ge) H橋的高電壓大電流全橋式驅動器,可以用來驅動直流電機和步進電機、繼電器線圈等感性負載;采用標準邏輯電平信號控製;具有兩(liang) 個(ge) 用控製端,在不受輸入信號影響的情況下允許或禁止器件工作有一個(ge) 邏輯電源輸入端,使內(nei) 部邏輯電路部分在低電壓下工作;可以外接檢測電阻,將變化量反饋給控製電路。使用L298N芯片驅動電機,該芯片可以驅動一台兩(liang) 相步進電機和四相步進電機,也可以兩(liang) 台直流電機。L298N模塊的驅動電路圖如圖13所示。
對於(yu) 以上電路圖有以下幾點說明:
1)電路圖中有兩(liang) 個(ge) 電流,一路為(wei) L298工作需要的5V電源VCC,一路為(wei) 驅動電機用的電池電源VSS。
2)1腳和15腳有的電路在中間串接了大功率的電阻,可以不加
3)八個(ge) 續流二極管是為(wei) 了消除電機轉動時的尖峰電壓保護電機而設計,簡化電路可以不加。
4)6腳和11腳為(wei) 兩(liang) 路電機通道的使能開關(guan) ,高電平使能所以可以直接接高電平,也可以交由單片機控製。
5)由於(yu) 工作時L298的功率較大,可以適當加裝散熱片。
L298模塊的的外形圖如圖14所示:
6、電機正反轉程序
下麵寫(xie) 一個(ge) 程序讓小車上一個(ge) 電機正轉。
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit PWM1=P2^0;//接IN1 控製正轉
sbit PWM2=P2^1;//接IN2 控製反轉
void main()
{
while(1)
{
PWM1=1;
PWM2=0;
}
}
下麵寫(xie) 一個(ge) 程序讓小車上兩(liang) 個(ge) 個(ge) 電機正轉,實現小車的前行。
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit PWM1=P2^0;//接IN1 控製正轉
sbit PWM2=P2^1;//接IN2 控製反轉
sbit PWM3=P2^2;//接IN1 控製正轉
sbit PWM4=P2^3;//接IN2 控製反轉
sbit PWM5=P2^4;//接IN1 控製正轉
sbit PWM6=P2^5;//接IN2 控製反轉
sbit PWM7=P2^6;//接IN1 控製正轉
sbit PWM8=P2^7;//接IN2 控製反轉
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、雙電機差速轉向的原理
ZN-1A智能小車有兩(liang) 種轉向的方式,差速轉向和舵機轉向。由於(yu) 差速轉向目前市麵上的資料和相關(guan) 程序比較多,所以本教程絕大部分程序采用後輪驅動,前輪舵機實現轉向的控製方式。這裏簡要介紹一下差速轉向的原理及方法,並給出一個(ge) 簡單的程序,更複雜的程序請大家參考相關(guan) 的資料,如可以利用ZN-1A智能小車實現小車的直立運動,即兩(liang) 輪直立前行,目前世界上比較風行的兩(liang) 輪直代步車就是利用這種形式實現,不過要要做兩(liang) 輪直立時涉及到平衡的問題,需對加速度計和陀螺儀(yi) 的知道有所了解,有興(xing) 趣 朋友可以利用本小車實現直立的功能,這裏不多作介紹。
所謂的差速,是指左右兩(liang) 車輪的速度差,假如左邊車輪比右邊的快,則小車會(hui) 偏向右。同時,左的的車輪轉速比右的慢,那麽(me) 小車會(hui) 向左邊轉動。目前主要有以下兩(liang) 種方式。
(1)小車向左轉,可是是左輪停止,左輪繼續轉動,這樣可實現左轉,這種方式實現小角度的轉彎,在角度不大時可采用此種方式。
(2)小車向左轉,可以是左輪反轉,右輪正轉,這樣可以實現大角度的左轉,甚至可以進行原地打轉。
同理可推出小車如何向右轉向。
下麵給出一個(ge) 利用後輪電機差事運動實現小車原地打轉的程序。
8、利用差速實現小原原地打轉程序