直流馬達
馬達概論
馬達即為電動機,是將電能轉換成機械能,驅使機械作旋轉或直線運動。自走車的動力多來自馬達。本單元主要是在談論自走車的設計及應用,選用適當的馬達是件重要的工作,由馬達的工作原理開始談起,再說明如何應用及控制。
馬達的電源分為直流和交流二大類,自走車為了移動方便,所使用的都是直流馬達,因為交流馬達大多使用在家庭或工業用途等固定電氣設備上。直流馬達另一個優點是控速比較簡單,只須控制電壓大小即可控制轉速,Arduino可利用類比輸出的PWM輸出,即可以調節馬達的輸出速度。工作原理
直流馬達的基本構造,包括「定子」、「轉子」、「換向片」、「電刷」。其功能為:
定子:其永久磁鐵可以產生固定磁場。
轉子:可繞軸心旋轉的線圏,經通電後成為電磁鐵。
換向片:與轉子上的線圈連接,隨線圈轉動,可以改變電流方式。以維持電磁鐵(轉子)和固定磁場(定子)的互斥(或吸引)的關係。
電刷:與換向片接觸,用以連接至電源。
直流馬達的工作原理,是利用電流流經銅線所繞製的線圏所產生的磁場,和既有的永久磁鐵所形成的磁場,因為相互的排斥或吸引,而造成轉子的轉動。
(圖) 直流馬達的零件
最常見的玩具直流馬達,都是有刷馬達,所謂的有刷是指電刷部分,其中的電刷和換向片的部分是為了讓轉子在轉動時,可以保持正確的磁場極性,和定子的永久磁鐵所形成的磁場保持排斥或吸引的效果。而無刷馬達是為了解決有刷馬達在高速運轉時,電刷長時間接觸換向片下所帶來的高熱,且影響轉速,故利用電子變相電路來取代電刷和換向片的機構,其轉速較高,但是成本較高。
(圖) 常見的直流馬達及減速馬達
減速齒輪機構
有刷馬達的轉速過高,如果要應用在自走車上,需要進行所謂的減速齒輪機構的減速。如上圖的中間的減速齒輪組即是一例,或者是利用圖右的減速馬達,較容易直接應用。一般而言,一般的DC小馬達的工作電壓為3-6V,其轉速為一萬到二萬上下RPM,速度過快,力矩過小,根本不適合應用在自走車上,所以,需透過1:100~200左右的減速齒輪,降到約100~400RPM左右,且提高力矩,較為適合。
馬達如何控制
科學魔法車的教材之中,所使用的是利用繼電器來控制馬達的轉動及方向,如圖所示,
圖 繼電器控制馬達順向轉動電路圖
在繼電器導電時,馬達即能通電轉動。至於馬達轉動方向由電流方向作改變,如下圖所示。
圖 繼電器控制馬達逆向轉動電路圖
如果每次要控制馬達轉向時,就要進行繼電器的方向置換的話,當然是件很麻煩的事,所以可以試著作下列這個電路的控制形式,類似H字母的電路型式,即所謂的H橋電路
圖 H橋繼電器控制馬達電路圖
當Relay A和Relay B導通時,馬達即正轉。
圖 H橋繼電器控制馬達順向轉動
當Relay C和Relay D導通時,馬達即反轉。
圖 H橋繼電器控制馬達逆向轉動
如同,利用繼電器來進行控制,我們也可以使用電晶體,只是一般電晶體的工作容量不大,如果要控制較大的電流時,我們還是需要使用達靈頓電晶體。我們就將上述的電路中的繼電器置換成達靈頓電晶體,其中增加的二極體是為了保護輸出電路,不被反向電壓破壞,電路圖如下,其工作方式和繼電器相同:
圖 H橋電晶體控制馬達電路圖
L298N馬達驅動板
L298N是ST公司生產的一種高電壓、大電流電機驅動晶片。該晶片採用15腳封裝。主要特點是:工作電壓高,最高工作電壓可達46V;輸出電流大,瞬間峰值電流可達3A,持續工作電流為2A;額定功率25W。內含兩個H橋的高電壓大電流全橋式驅動器,可以用來驅動直流電動機和步進電動機、繼電器線圈等感性負載;採用標準邏輯電平信號控制;具有兩個使能控制端,在不受輸入信號影響的情況下允許或禁止器件工作有一個邏輯電源輸入端,使內部邏輯電路部分在低電壓下工作;可以外接檢測電阻,將變化量回饋給控制電路。使用L298N晶片驅動電機,該晶片可以驅動一台兩相步進電機或四相步進電機,也可以驅動兩台直流電機。
L298N 模組集成了一個內置的5V供電,當你的驅動電壓為 7V - 35V 的時候,可以使用上的 5V 邏輯供電,當使用板上 5V 供電之後,介面中的 +5V 供電不要輸入電壓,但是可以引出 5V 電壓供外部使用。
當ENA 致能 IN1 IN2 控制 OUT1 OUT2
當ENB 致能 IN3 IN4 控制 OUT3 OUT4
直流電機驅動器-H橋電路
驅動直流馬達,為什麼需要H橋電路的輔助呢?原因有二:避免馬達的啓動電流和工作電流過大,損壞Arduino控制板。第二個原因是因為想要控制馬達的正反轉和停止的動作,就需透過H橋電路,常見的H橋電路IC,有L298、L293等。(註:詳細內容請參考初遇Arduino)
表 L298 Shield直流電機驅動器控制訊號真值表
(圖) H橋電晶體控制馬達電路圖
(圖)常見直流馬達驅動模組
這塊板子幾乎把所有的數位IO都占光了,所以,一直不愛使用這塊板子,但是最近在重新構思工程車,
突然發現它的美好,如果利用手機藍芽控制的話,一塊板子就可以控制四個直流馬達和二顆舵機,又不用接一堆線,
真是太理想。
程式教學(如何前進、後進、左右轉及快慢)
最簡單的一行指令:
程式區塊就分為二個部分
setup:程式一開始的部分,在設定程式所需要的起始狀態。像此時只是練習而已,就可以把它空下來。
loop:要重複不斷執行的部分,我們要想L293 Shield上的M1馬達不斷執行,故channl選擇1 ,而motor speed可以選擇0到255,分別代表不同的出力程度。
先讓輪子轉起來吧。
下列三個指令能控制馬達的正轉/反轉/停止及轉速喔!試看看吧!
所以當小車要前進時:
其程式寫法是:
但在兩輪馬達的速度都設定為255的情況下,兩輪速度真的能會一致嗎?
答案是不可能!因為兩顆馬達的製作上還是會有些許誤差,所以,還是小車的行動路徑還是有會有些許偏移。
所以,要透過微調二輪的速度設定。如果是小車往右走,表示左輪速度較快,就調降左輪速度。
如果小車要右轉的話。有二種走法:
一:左輪前行,右輪停止。(以右輪為中心的轉彎)
二:左輪前行,右輪逆轉。(以兩輪為中心的轉彎)
如果要令小車右轉90度,該如何處置呢?
利用delay的時間來決定轉彎的角度。
寫到這裏,同學們大概可以試著類推出小車後退及左轉的程式寫法吧!