用arduino板做的蔽障小车
潜水很久了,在论坛上学了很多。发个以前做的小车,那时的我只知道单片机很强大,不知道怎么用,总觉得学电子要花好多钱,在读书又没多少钱,虽然学的是电子专业,但那时才大一,也没人指导,也不知道去找老师请教,自己学习加网上找资料还是花了近一年的时间才弄出来的。》》》现在看看觉得当时太笨了
http://cache.amobbs.com/bbs_upload782111/files_43/ourdev_662320UL970V.JPG
减速电机 (原文件名:DSC00073.JPG)
http://cache.amobbs.com/bbs_upload782111/files_43/ourdev_662321Y4GJTR.JPG
(原文件名:DSC00064.JPG)
http://cache.amobbs.com/bbs_upload782111/files_43/ourdev_662322V6JCD2.JPG
(原文件名:DSC00072.JPG)
http://cache.amobbs.com/bbs_upload782111/files_43/ourdev_662323I9Z3CO.JPG
(原文件名:DSC00071.JPG)
http://cache.amobbs.com/bbs_upload782111/files_43/ourdev_662324UZ6CV4.JPG
(原文件名:DSC00056.JPG)
http://cache.amobbs.com/bbs_upload782111/files_43/ourdev_662325RT32IN.JPG
(原文件名:DSC00054.JPG)
http://cache.amobbs.com/bbs_upload782111/files_43/ourdev_662326JCDSGQ.JPG
(原文件名:DSC00058.JPG)
http://cache.amobbs.com/bbs_upload782111/files_43/ourdev_662327G51FB2.JPG
(原文件名:DSC00057.JPG)
http://cache.amobbs.com/bbs_upload782111/files_43/ourdev_662328Y6TQCN.JPG
(原文件名:DSC00053-1.JPG)
http://cache.amobbs.com/bbs_upload782111/files_43/ourdev_662329CDQ2SA.JPG
(原文件名:DSC00067.JPG)
http://cache.amobbs.com/bbs_upload782111/files_43/ourdev_662330ZFRUQ2.JPG
(原文件名:DSC00069.JPG)
http://cache.amobbs.com/bbs_upload782111/files_43/ourdev_662331X6HLX9.JPG
(原文件名:DSC00065.JPG)
程序:
int inputPin=12;
int outputPin=13;
int pinI1=8;//定义I1接口
int pinI2=9;//定义I2接口
int speedpin0=5;//定义EA(PWM调速)接口
int pinI3=10;//定义I3接口
int pinI4=11;//定义I4接口
int speedpin1=6;//定义EB(PWM调速)接口
int IRR=2;//定义右侧避障传感器接口
int IRM=3;//定义中间避障传感器接口
int IRL=4;//定义左侧避障传感器接口
void setup()
{
Serial.begin(9600);
pinMode(pinI1,OUTPUT);
pinMode(pinI2,OUTPUT);
pinMode(speedpin0,OUTPUT);
pinMode(pinI3,OUTPUT);
pinMode(pinI4,OUTPUT);
pinMode(speedpin1,OUTPUT);
pinMode(IRR,INPUT);
pinMode(IRM,INPUT);
pinMode(IRL,INPUT);
pinMode(inputPin,INPUT);
pinMode(outputPin,OUTPUT);
}
void loop()
{
int r,m,l;
/***********************读取红外接收管信号**************************/
r=digitalRead(IRR);
m=digitalRead(IRM);
l=digitalRead(IRL);
/******************超声波测距*************************/
digitalWrite(outputPin,LOW);
delayMicroseconds(2);
digitalWrite(outputPin,HIGH);
delayMicroseconds(10);
digitalWrite(inputPin,LOW);
long distance=pulseIn(inputPin,HIGH);
distance=distance/58;
Serial.print("S=");
Serial.print(distance);
Serial.print("cm");
Serial.println();
/*******************************************/
if(distance>10)//双分支
{
advance(120);//前进
}
else
{
if(l==HIGH &&m==HIGH && r==HIGH)//分别装在三个方向上,低电平有效
advance(120);//前进
if(l==LOW &&m==LOW&& r==LOW )
{
back(120);//后退
delay(300);
right(100);//右转
delay(100);
}
if(l==LOW &&m==HIGH&& r==LOW )
{
back(120);//后退
delay(300);
right(100);//右转
delay(100);
}
if(l==HIGH&&m==LOW&& r==HIGH)
{
back(120);//后退
delay(300);
right(100);//右转
delay(100);
}
if(l==LOW &&m==LOW&& r==HIGH )
right(100);//右转
if(l==LOW && m==HIGH && r==HIGH)
right(80);//右转
if(l==HIGH &&m==LOW&& r==LOW )
left(100);//左转
if(l==HIGH &&m==HIGH&& r==LOW )
left(80);//左转
}
}
void advance(int a)//前进
{
analogWrite(speedpin0,a);//输入模拟值进行设定速度
analogWrite(speedpin1,a);
digitalWrite(pinI4,LOW);//使直流电机(右)逆时针转
digitalWrite(pinI3,HIGH);
digitalWrite(pinI1,LOW);//使直流电机(左)顺时针转
digitalWrite(pinI2,HIGH);
}
void right(int r)//右转
{
analogWrite(speedpin0,r);//输入模拟值进行设定速度
analogWrite(speedpin1,r);
digitalWrite(pinI4,HIGH);//使直流电机(右)顺时针转
digitalWrite(pinI3,LOW);
digitalWrite(pinI1,LOW);//使直流电机(左)顺时针转
digitalWrite(pinI2,HIGH);
}
void left(int l)//左转
{
analogWrite(speedpin0,l);//输入模拟值进行设定速度
analogWrite(speedpin1,l);
digitalWrite(pinI4,LOW);//使直流电机(右)逆时针转
digitalWrite(pinI3,HIGH);
digitalWrite(pinI1,HIGH);//使直流电机(左)逆时针转
digitalWrite(pinI2,LOW);
}
void Stop()//停止
{
digitalWrite(pinI4,HIGH);//使直流电机(右)制动
digitalWrite(pinI3,HIGH);
digitalWrite(pinI1,HIGH);//使直流电机(左)制动
digitalWrite(pinI2,HIGH);
}
void back(int b)//后退
{
analogWrite(speedpin0,b);//输入模拟值进行设定速度
analogWrite(speedpin1,b);
digitalWrite(pinI4,HIGH);//使直流电机(右)顺时针转
digitalWrite(pinI3,LOW);
digitalWrite(pinI1,HIGH);//使直流电机(左)逆时针转
digitalWrite(pinI2,LOW);
}
速度值要自己实际调试,我用的是两个坏手机的电池串联供电的,速度跟电压有关
pde格式的文件ourdev_662334N97PWC.zip(文件大小:1K) (原文件名:xunji_first.zip)
哦,还有红外蔽障电路
http://cache.amobbs.com/bbs_upload782111/files_43/ourdev_662346R6DV3V.JPG
(原文件名:捕获.JPG)
其他的都用了超声波模块和电机驱动模块 那个。。。。字打错了,是躲避的避,不是屏蔽的蔽。 回复【1楼】huayuliang 花生
-----------------------------------------------------------------------
呵呵。。。谢谢指正! 楼主,你的应用用nano或者pro mini会更方便,引出插针直接接杜邦线
额,又广告了一把。。。 不错,最近也在搞这个 做的挺不错的 我现在也在弄arduino小车呢,向楼主学习! 谢谢分享@@@
页:
[1]