控制/MCU
L298N 是一种双H桥电机驱动芯片,其中每个H桥可以提供2A的电流,功率部分的供电电压范围是2.5-48v,逻辑部分5v供电,接受5vTTL电平。一般情况下,功率部分的电压应大于6V否则芯片可能不能正常工作。
这次就用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);
}
全部0条评论
快来发表一下你的评论吧 !