AmebaMotors 介紹
使用 L298N 模組控制直流馬達
重要參考1
重要參考2
材料準備
- Aduino uno x 1
- L298N H-Bridge x 1
- 2輪車(含萬向輪)
L298N控制板用來控制馬達的模組,它可以驅動2個DC馬達。
這個範例將L298N用於2個DC馬達,所以材料上使用2輪車
4輪車套件通常含有以下內容:
價錢可能會因為一些額外的模組而有不同,有些會多加電池盒、藍芽模組、超音波測距模組、紅外線測距模組……。
建議寫程式並測試完馬達運作之後,再將車子組裝起來。
材料說明
- DC馬達
一般的DC馬達使用兩根線控制正反轉。如下圖,當我們將L接GND,R接3V3,馬達就會開始轉動,將L接3V3,R接GND,馬達就會反轉。如果將3V3改成5V就可以得到更高的轉速。馬達可以承受的電流要參考馬達的規格。
一般買到的小車套件都已經為馬達包裝成適合加上輪子,我們可以測試一下它的轉向,底下是常見的包裝,中間有凸起來的地方代表這面裝輪子:
- L298N H-Bridge(本範例不適用於含有74HC00邏輯閘的L298控制板)
 |
 |
本範例適用沒有74HC00邏輯閘的L298控制板 |
本範例不適用含有74HC00邏輯閘的L298控制板 |
L298N模組在市面上可以看到不同包裝,但一般都會有底下這些pin
- +12V: L298N的板子供電,不同模組可以接受的電壓不同,常見的range有+6V~+12V, +5V~+12V, +7V~+12V, >=+12V
- GND: 接電源的GND
- +5V: 如果L298N供電的部份大於+7V,那麼+5V的地方可以再供電給其它板子。+12V上面有個jumper,Jumper接上才有提供+5V。
- OUT1, OUT2: 用來輸出並控制第一組馬達。它的接點使用螺絲,一般最多接兩條線,所以可以一次控制兩個馬達。(但要注意螺絲是否有鎖緊,或是有接觸不良的情況)
- OUT3, OUT4: 用來輸出並控制第二組馬達
- ENA, IN1, IN2: 接受輸入訊號來控制OUT1與OUT2
- ENB, IN3, IN4: 接受輸入訊號來控制OUT3與OUT4
- ENB用來控制第二組馬達轉速,一般會用PWM來控制。如果不需要控制轉速可以用jumper接到5V。
- IN3與IN4控制第一組馬達正反轉:
IN3 |
IN4 |
OUT1 |
OUT2 |
LOW |
LOW |
LOW |
LOW |
HIGH |
LOW |
HIGH |
LOW |
LOW |
HIGH |
LOW |
HIGH |
範例說明
這個範例會讓小車自己跑基本動作
打開範例 “Files” -> “Examples” -> “AmebaMotors” -> “car2wd_digit_control”。(如果沒看到範例,請參考前面的步驟確定library已安裝)
範例裡使用這幾根PIN:
ENA |
IN1 |
IN2 |
IN3 |
IN4 |
ENB |
8 |
9 |
10 |
11 |
5 |
6 |
並且接線如下圖:
注意事項:
- 這邊我們將Ameba的5V接到L298N的+12V供電的地方,但並不是每個L298N模組都可以使用5V供電。如果不行的話,請使用其它電源(Ex. +12V)供電給L298N的+12V接腳,再用L298N的+5V供電給Ameba
- 馬達的接法可能會左右相反,可以在跑完測試程式之後再決定是否要交換。(建議在測試完之前不要組裝車子)
- 為了接線方便,可以考慮花點時間將馬達的接線整理成杜邦線接頭。L298N的螺絲接頭也可以整理成杜邦線接頭。
接線完之後,在每次需要改動程式時,可以先將L298N的電源拔掉,避免馬達不預期地亂跑。然後再將Ameba接上電源。上傳完程式並確定開始測試時再將L298N的電源插上。
這裡我們將範例程式 car2wd_digital_control 編譯並上傳到Ameba。
這個程式會讓車子做以下的動作:
向前跑一秒→往後退一秒→原地順時鐘旋轉三秒→原地逆時鐘旋轉三秒→前進左拐半秒再右彎半秒→之後停止一秒,然後從頭依序循環測試永不停止……
底下是車子動作的控制說明:
- 車子速度:ENA與ENB我們用PWM控制,頻率設定在200 (resolution=256)
- 往前跑:
IN1 |
IN2 |
IN3 |
IN4 |
HIGH |
LOW |
HIGH |
LOW |
- 往後跑:
IN1 |
IN2 |
IN3 |
IN4 |
LOW |
HIGH |
LOW |
HIGH |
- 向右順時鐘旋轉:我們讓左邊的馬達往前跑,右邊的馬達往後跑:
IN1 |
IN2 |
IN3 |
IN4 |
HIGH |
LOW |
LOW |
HIGH |
- 向左逆時鐘旋轉:我們讓右邊的馬達往前跑,左邊的馬達往後跑:
IN1 |
IN2 |
IN3 |
IN4 |
LOW |
HIGH |
HIGH |
LOW |
- 前進右轉:完成這個動作的方式有兩種。
- 物件導向運用CltMotor程式庫對兩輪自走車進行狀態機的循環測試程式碼(列表如下:)
CltMotorStateMachine.ino 程式碼
測試完,如果反應正確,就可以組裝車子了。除了小車套件的零件固定完之外,一些細節可以使用像皮筋做固定。
底下是我們demo的影片:
|
|