//Logo Image
作者:張維益(2013-02-18);推薦:徐業良(2013-02-18)

使用馬達驅動IC板搭配Arduino控制馬達正反轉與轉速

在馬達控制應用中,經常使用開關的包括繼電器與電晶體,而其中經由電子訊號驅動的電晶體又比繼電器等機械式開關的速度快上許多。一般使用4個電晶體組成的橋式電路來做為切換的開關,並控制馬達的正轉與反轉。本文使用的馬達驅動ICL298N馬達模組,其原理主要將兩組橋式電路封裝成晶片,並加上穩壓IC,能同時驅動兩顆直流馬達或一顆步進馬達,並控制轉速。以下將介紹如何將Arduino UNO接上L298N馬達驅動板控制12V直流馬達。

1.    軟硬體設定與使用

本文使用的器材如下:

(1)     Arduino UNO開發板,USB傳輸線,以及Arduino IDE軟體開發環境。

(2)     L298N馬達驅動板、12伏特直流馬達。

(3)     12伏特電池(提供驅動馬達之電壓)。

L298N工作規格如下表1

名稱

說明

數值

單位

Supply Voltage

馬達供電範圍

+5~+35

伏特

Logic Supply Voltage

邏輯供電範圍

+5~+7

伏特

Peak Current

驅動峰值電流

2

安培

Operating Current

邏輯工作電流

0~36

毫安培

Maximum Power

最大功耗

20

瓦特

1. L298N馬達模組工作規格

L298N馬達驅動板具備I/O地線與電源輸入與輸出,如下圖1中編號1至編號8。編號12為兩組馬達連接端子。編號3為馬達工作電壓輸入,編號4為地線。編號55V電源輸出,本文中使用此腳位來供電至Arduino UNO板。編號67Enable bridge,為控制馬達驅動IC中橋式電路的開關,本文中使用的馬達驅動IC已將兩組Enable bridge預設為On,若為Off L298N則無法運作。編號84條連接Arduino UNO的腳位,1組馬達使用兩隻腳位來控制正轉與反轉。

1. L298N馬達模組

按照上述說明,將L298N馬達驅動板接上Arduino UNO接上電池與12V直流馬達,如下圖2與圖3所示:

2. L298N馬達模組與Arduino UNO接線圖

3. L298N馬達模組與Arduino UNO實際接線圖

2.    程式說明

本文使用的範例目的在於控制馬達正反轉與轉速,利用L298N馬達驅動板可以切換馬達的轉向。L298N馬達驅動板上共有4個輸入腳位可控制,分別為IN1IN2IN3IN4兩個一組分別能控制兩顆馬達,本文中將IN1IN2連接上Arduino UNO的兩個PWM腳位來控制馬達,其控制邏輯如下表2所示:

2. 馬達控制邏輯

ENA

IN1

IN2

Fuction

HIGH

HIGH

LOW

馬達正轉

HIGH

LOW

HIGH

馬達反轉

HIGH

IN1 = IN2

IN2=IN1

馬達快速停止

LOW

Ignored

Ignored

馬達慢速停止

Arduino開發環境中,首先需要設定兩個數位腳位的位置,本文使用的Arduino UNO開發板共有14支數位腳位(Digital Pins0~13),其中共有6支數位腳位支援PWM輸出,分別為35691011,利用PWM輸出可以改變輸出電壓的大小,達到控制馬達轉速之效果,範例中將IN1IN2接上Arduino UNO板上數位腳位的56,並在Arduino開發環境中定義相對應的腳位以及腳位模式,一般而言,會先將變數設定在程式開始之前(即進入void setup()前),在void setup()中,我們設定只使用一次的腳位模式,在此設定程式相對應的PWM腳位56為輸出,如下圖4

4. 設定數位腳位

定義完腳位與模式後,接著設定馬達正反轉與速度的控制,如下圖5。本文中使用PWM進行輸出,使用的輸出函式為analogWrite()而非digitalWrite(),一般使用的數位輸出僅能進行HIGH/LOW的輸出,即高電位與低電位,而在Arduino UNO中的PWM輸出,可將輸出電壓0V~5V等比例縮放成數值0~255,當輸出訊號至L298N馬達驅動板後,經由穩壓IC,會輸出相對於0~2550V~12V的電壓。範例中為求馬達有明顯轉動,從類比輸出值=150開始逐漸遞增,以for迴圈來控制遞增速度與間隔,本文中在for迴圈設定delay(150)與輸出遞增值為10,並以Arduino UNO開發板PWM最大值255為終點,即為每150毫秒,類比訊號輸出值增加10,共增加10次,並在1.5秒完成正轉指令的for迴圈,當迴圈結束則馬達停止運作兩秒,並進入反轉指令,如下圖6

5. 控制馬達輸出(正轉)

6. 控制馬達輸出(反轉)

使用此範例可以簡單控制馬達正反轉、轉速遞增遞減、延遲以及使馬達停止運作,使用者可以依其需求更改使用的腳位、轉速遞增值以及停止時間。一組馬達驅動板可控制兩組直流馬達,所需4條腳位,若有需求,使用者可自行增加馬達驅動模組。

參考資料

[1]  Arduino 官方網站,http://arduino.cc/

[2]  Cooper Maahttp://coopermaa2nd.blogspot.com/