资源描述:
《红外避障小车4》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、红外避障小车今天就用Arduino简单的控制一下小车的前进及转弯。要准备的有:机器人基地2WD小车、Arduino控制器、Arduino传感器扩展板(这里我为了接线方便使用)、双H桥直流电机驱动板、电池、杜邦线若干。双H桥直流电机驱动板的接线方式及使用方法以前博文Arduino控制直流电机曾介绍过,这里做一下详细说明。首先VMS驱动部分取电可接+5V-+46V,逻辑部分可板内取电,即端子可悬空,也可接入+5V-+7V。端子左右两排三个插针分别用来控制两路直流电机。EA、EB接入ArduinoPWM接口用于电机调速,I1、I2、I3、I4接口,
2、分别用来控制两路直流电机前进、后退、转向以及刹车,只需接入Arduino的数字接口即可。散热片后有单排四个插针用来接步进电机,但是我们也可以用他们接入两路直流电机,这样首先可以解决电机线不够长的问题,其次就是用杜邦线做电机引线方便插接问题了,不过用这个方式接线我们一定要注意一点,就是板子左右上角的电流反馈接口跳线帽一定要像下图一样接好,左右对称。电流反馈功能以后再研究,且电机插针左边两插针与左路电机对应,右边两插针与右路电机对应,杜邦线插接即可。下面附几幅我的接线完成图,仅供大家参考。传感器接线图,红黑线为电源线,我是从双H桥直流电机驱动板取
3、电,其他为电机控制线。驱动板接线细节图直流电机接线细节图到此准备工作基本完成,可以编写程序了,这里我把2WD小车直走、后退、左转、右转、刹车的功能都编写进程序供大家参考。程序如下:intpinI1=8;//定义I1接口intpinI2=9;//定义I2接口intspeedpin=11;//定义EA(PWM调速)接口intpinI3=6;//定义I3接口intpinI4=7;//定义I4接口intspeedpin1=10;//定义EB(PWM调速)接口voidsetup(){pinMode(pinI1,OUTPUT);pinMode(pinI2
4、,OUTPUT);pinMode(speedpin,OUTPUT);pinMode(pinI3,OUTPUT);pinMode(pinI4,OUTPUT);pinMode(speedpin1,OUTPUT);}voidloop(){//直走 analogWrite(speedpin,100);//输入模拟值进行设定速度 analogWrite(speedpin1,100); digitalWrite(pinI4,LOW);//使直流电机(右)逆时针转 digitalWrite(pinI3,HIGH); digit
5、alWrite(pinI1,LOW);//使直流电机(左)顺时针转 digitalWrite(pinI2,HIGH); delay(2000);//后退 analogWrite(speedpin,100);//输入模拟值进行设定速度 analogWrite(speedpin1,100); digitalWrite(pinI4,HIGH);//使直流电机(右)顺时针转 digitalWrite(pinI3,LOW); digitalWrite(pinI1,HIGH);//使直流电机(左)逆时针转
6、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);
7、//右转 analogWrite(speedpin,60);//输入模拟值进行设定速度 analogWrite(speedpin1,60); digitalWrite(pinI4,HIGH);//使直流电机(右)顺时针转 digitalWrite(pinI3,LOW); digitalWrite(pinI1,LOW);//使直流电机(左)顺时针转 digitalWrite(pinI2,HIGH); delay(2000);//刹车 digitalWrite(pinI4,HIGH);//使直流电机
8、(右)刹车 digitalWrite(pinI3,HIGH); digitalWrite(pinI1,HIGH);//使直流电机(左)刹车 dig