标题:
蓝牙避障小车(蓝牙控制、避障、调速、寻光)
[打印本页]
作者:
HeYQ
时间:
2018-4-10 14:57
标题:
蓝牙避障小车(蓝牙控制、避障、调速、寻光)
这是一个有关蓝牙控制的寻光避障小车的详细程序
单片机源程序如下:
#include<reg52.h>
#include<math.h>
#include<auto.h>
sfr T2MOD=0xc9;
u8 n1,left,right,jd,count,t,j,k;
u16 time,s1,s2;
float S;
u8 m;
u8 code n[]="0123456789";
void chaoshengbo()
{
TRIG=1;
DelayUs2x(15);
TRIG=0;
while(!ECHO);
TR1=1;
while(ECHO);
TR1=0;
time=TH1*256+TL1;
S=time*0.017;
if(S>=25)
{
n1=1;
}
if(S<25)
{
n1=0;
}
TH1=0;
TL1=0;
}
void bizhang()
{
jd=3;
count=0;
while(m==n[7])
{
RI=0;
chaoshengbo();
if(n1==1)
{
t=1000;
while(t>0)
{
go1();
t--;
}
}
if(n1==0)
{
stop();
jd=2;
count=0;
chaoshengbo();
DelayMs(2000);
s1=S;
right=n1;
jd=3;
count=0;
DelayMs(2000);
jd=4;
count=0;
chaoshengbo();
DelayMs(2000);
s2=S;
left=n1;
jd=3;
count=0;
if((s1>=s2)&&(right==1))
{
j=1000;
while(j>0)
{
turnright();
j--;
}
}
else if((s2>s1)&&(left==1))
{
k=1000;
while(k>0)
{
turnleft();
k--;
}
}
else
{
back();
DelayMs(500);
}
}
}
}
void xunguang()
{
while(m==n[8])
{
RI=0;
if((Lt1==1)&&(Lt2==1))
{
go();
}
else
{
if(Lt1==1)
{
left1();
}
else
{
if(Lt2==1)
{
right1();
}
else
{
stop();
}
}
}
}
}
void xunji()
{
while(m==n[9])
{
RI=0;
if((tr1==1&&tr2==1)&&(tr3==1&&tr4==1))
{
go2();
}
else if((tr1==1&&tr2==1)&&(tr3==1&&tr4==0))
{
turnleft2();
}
else if((tr1==1&&tr2==1)&&(tr3==0&&tr4==1))
{
turnright2();
}
else if((tr1==0&&tr2==0)&&(tr3==0&&tr4==1))
{
turnright2();
}
else if((tr1==0&&tr2==0)&&(tr3==1&&tr4==0))
{
turnleft2();
}
else if((tr1==0&&tr2==0)&&(tr3==0&&tr4==0))
{
back2();
}
else
{
stop();
}
}
}
void UsartInit() //串口初始化函数
{
SCON=0X50; //设置为工作方式1
PCON=0X80;
T2MOD=0x01; //自动重载
T2CON=0x30; //T2用做发送接收时钟
RCAP2H=0xFF; //计数器初始值设置,注意波特率是9600的
RCAP2L=0xDc;
TMOD|=0x11;
TH0=0xfe;
TL0=0x33;
TH1=0x00;
TL1=0x00;
TH2=0xFF;
TL2=0xDc;
ET1=1;
ET0=1;
TR0=1;
ES=1; //打开接收中断
EA=1; //打开总中断
TR2=1;
}
void main()
{
UsartInit(); //串口初始化
while(1)
{
if(m==n[7])
{
bizhang();
}
else
{
if(m==n[0])
{
stop(); //停止
}
if(m==n[1])
{
go(); //前进
}
if(m==n[2])
{
turnleft1(); //左转
}
if(m==n[3])
{
left1(); //原地左转
}
if(m==n[4])
{
turnright1(); //右转
}
if(m==n[5])
{
right1(); //原地右转
}
if(m==n[6])
{
back(); //后退
}
if(m==n[8])
{
xunguang();
}
if(m==n[9])
{
xunji();
}
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
蓝牙控制、避障、调速、寻光.rar
(53.49 KB, 下载次数: 50)
2018-4-10 14:54 上传
点击文件名下载附件
蓝牙小车寻光,避障
下载积分: 黑币 -5
作者:
LGX123
时间:
2018-5-18 20:43
你这个寻光用的是什么模块
作者:
小菜鸟本不菜
时间:
2019-5-2 20:07
有没有相关原理图,大哥
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1