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);
}
注:程序里我所用的左转和右转只是转弯的一种控制方式,其他方式就不一一列举了,大家可以自己尝试。
|