L298P是一款雙H橋直流電機驅動晶片,可用於驅動直流馬達。L298P模組可以直接驅動兩個直流電機,驅動電流可達2A。傑森特別要介紹的這款是擴展板形式,只要插到Arduino Uno,完全不用接線,就能立刻使用。
目前最流行的馬達驅動板一直都是L298N,但它的複雜接線,常讓初學者卻步,也造成很多老師在教學時的困擾。所以傑森真心推薦改用L298P,會輕鬆非常多!
購買L298P:
https://www.jmaker.com.tw/products/l298p
擴展板最讓人擔心的,就是它會不會吃掉過多的PIN腳,嘿,L298P不會哦!
馬達驅動部份:D10、D11、 D12、D13
D4:內建的有源蜂鳴器
D9:伺服馬達
除此之外,其它的PIN腳都能自由運用,就算要把藍牙、紅外線模組、超音波模組全接上也沒什麼問題,而且還提供了方便的PIN腳,還不錯吧!
可用數位PIN腳:D2 D3 D5 D6 D7 D8
可用類比PIN腳:A0 A1 A2 A3 A4 A5
我開始動手試試吧!先把擴展板插到UNO板上。因為要驅動2顆馬達,肯定是要接外部電源的,擴展板上有外接電源的接座,用鎖的,可接4.8V~24V的電池。
接著把兩顆馬達接到MotorA和MotorB的接座上。
接線工作搞定!是的,就是這麼簡單!
開始寫程式囉!要安裝函式庫嗎?不用,直接寫程式就可以了!
D10:控制MotorA的速度,PWM,0~255
D11:控制MotorB的速度,PWM,0~255
D12:控制MotorA的方向,HIGH正轉,LOW反轉
D13:控制MotorB的方向,HIGH正轉,LOW反轉
我們寫一個簡單的程式,先讓兩顆馬達慢速轉、正轉,5秒;然後兩顆馬達用稍快的速度,反轉5秒,然後重複。
真的很簡單對吧,快換掉L298N,改用L298P吧! ^^
int E1 = 10; //MotorA的速度
int M1 = 12; //MotorA的轉向
int E2 =11; //MotorB的速度
int M2 = 13; //MotorB的轉向
void setup() {
pinMode(M1, OUTPUT);
pinMode(M2, OUTPUT);
}
void loop() {
digitalWrite(M1,HIGH); //MotorA正轉
digitalWrite(M2, HIGH); //MotorB正轉
analogWrite(E1, 150); // 用PWM設定MotorA速度
analogWrite(E2, 150); // 用PWM設定MotorB速度
delay(5000);
digitalWrite(M1,LOW); //MotorA反轉
digitalWrite(M2, LOW); //MotorB反轉
analogWrite(E1, 220); //用PWM設定MotorA速度
analogWrite(E2, 220); //用PWM設定MotorB速度
delay(5000);
}
購買L298P:
https://www.jmaker.com.tw/products/l298p