L298N驅動電機 今天就用Arduino簡單的控制一下小車的前進及轉彎。 話不多說,要準備的東東有:小車底盤、Arduino控制器、Arduino傳感器擴展板(這里我為了接線方便使用)、L298N直流電機驅動板、電池、杜邦線若干。
L298N橋直流電機驅動板的接線方式及使用方法以前文章自走車驅動連接曾介紹過,這里就不再說了,不過還有一些網友不清楚怎么控制兩路直流電機,以及網友們對前篇文章反映不清楚的地方,這里做一下詳細說明。 首先VMS驅動部分取電可接外接電源,一般是12V左右比較合適,邏輯部分可板內取電,即端子可懸空,也可接入+5V-+7V。端子左右兩排三個插針分別用來控制兩路直流電機。EA、EB接入ArduinoPWM接口用于電機調速,I1、I2、I3、I4接口,分別用來控制兩路直流電機前進、后退、轉向以及剎車,只需接入Arduino的數字接口即可。
到此準備工作基本完成,可以編寫程序了,這里我把小車直走、后退、左轉、右轉、剎車的功能都編寫進程序供大家參考。 程序如下:
int pinI1=8;//定義I1接口
int pinI2=9;//定義I2接口
int speedpin=11;//定義EA(PWM調速)接口
int pinI3=6;//定義I3接口
int pinI4=7;//定義I4接口
int speedpin1=10;//定義EB(PWM調速)接口
void setup()
{
pinMode(pinI1,OUTPUT);
pinMode(pinI2,OUTPUT);
pinMode(speedpin,OUTPUT);
pinMode(pinI3,OUTPUT);
pinMode(pinI4,OUTPUT);
pinMode(speedpin1,OUTPUT);
}
void loop()
{
//直走
analogWrite(speedpin,100);//輸入模擬值進行設定速度
analogWrite(speedpin1,100);
digitalWrite(pinI4,LOW);//使直流電機(右)逆時針轉
digitalWrite(pinI3,HIGH);
digitalWrite(pinI1,LOW);//使直流電機(左)順時針轉
digitalWrite(pinI2,HIGH);
delay(2000);
//后退
analogWrite(speedpin,100);//輸入模擬值進行設定速度
analogWrite(speedpin1,100);
digitalWrite(pinI4,HIGH);//使直流電機(右)順時針轉
digitalWrite(pinI3,LOW);
digitalWrite(pinI1,HIGH);//使直流電機(左)逆時針轉
digitalWrite(pinI2,LOW);
delay(2000);
//左轉
analogWrite(speedpin,60);//輸入模擬值進行設定速度
analogWrite(speedpin1,60);
digitalWrite(pinI4,LOW);//使直流電機(右)逆時針轉
digitalWrite(pinI3,HIGH);
digitalWrite(pinI1,HIGH);//使直流電機(左)逆時針轉
digitalWrite(pinI2,LOW);
delay(2000);
//右轉
analogWrite(speedpin,60);//輸入模擬值進行設定速度
analogWrite(speedpin1,60);
digitalWrite(pinI4,HIGH);//使直流電機(右)順時針轉
digitalWrite(pinI3,LOW);
digitalWrite(pinI1,LOW);//使直流電機(左)順時針轉
digitalWrite(pinI2,HIGH);
delay(2000);
//剎車
digitalWrite(pinI4,HIGH);//使直流電機(右)剎車
digitalWrite(pinI3,HIGH);
digitalWrite(pinI1,HIGH);//使直流電機(左)剎車
digitalWrite(pinI2,HIGH);
delay(2000);
}
注:程序里我所用的左轉和右轉只是轉彎的一種控制方式,其他方式就不一一列舉了,大家可以自己嘗試。
|