标题:
四路红外模块循迹程序。
[打印本页]
作者:
cxhhahahah
时间:
2016-11-27 23:14
标题:
四路红外模块循迹程序。
#include<reg51.h>
sbit RSEN2=P1^4;
sbit RSEN1=P1^3;
sbit LSEN1=P1^2;
sbit LSEN2=P1^1;
sbit IN1=P2^0;
sbit IN2=P2^1;
sbit IN3=P2^2;
sbit IN4=P2^3;
//****************延时函数****************//
int i,j;
void delay(int z)
{
for(i=0;i<z;i++)
for(j=0;j<110;j++);
}
//***************循迹函数*****************//
main()
{
while(1)
{
if((RSEN1==0)&&(RSEN2==0)&&(LSEN1==0)&&(LSEN2==0))
{ IN1=1,IN3=0,IN2=1,IN4=0; }//*******直行*******//
else if((RSEN1==0)&&(RSEN2==0)&&(LSEN1==1)&&(LSEN2==0))
{
IN1=0,IN3=1,IN2=1,IN4=0;
delay(30);
} //***左偏1
else if((RSEN1==0)&&(RSEN2==0)&&(LSEN1==0)&&(LSEN2==1))
{
IN1=0,IN3=1,IN2=1,IN4=0;
delay(200);
} //***左偏2
else if((RSEN1==1)&&(RSEN2==0)&&(LSEN1==0)&&(LSEN2==0))
{
IN1=1,IN3=0,IN2=0,IN4=1;
delay(30);
} //***右偏1
else if((RSEN1==0)&&(RSEN2==1)&&(LSEN1==0)&&(LSEN2==0))
{
IN1=1,IN3=0,IN2=0,IN4=1;
delay(200);
}//***右偏2
else if((RSEN1==1)&&(RSEN2==1)&&(LSEN1==1)&&(LSEN2==1))
{IN1=1,IN3=1,IN2=1,IN4=1;}//停止
}
}
作者:
长安丿
时间:
2016-12-6 00:45
然后就没了?...这是四轮差速麽
作者:
彬Lsl
时间:
2017-5-18 16:54
楼主试过没
作者:
雨轩wyx
时间:
2017-7-22 21:58
程序可以吗
作者:
grh
时间:
2017-8-2 21:17
楼主试过没
作者:
零度时空
时间:
2017-8-5 18:13
不错,但是我觉得可能会出现bug,因为 else if((RSEN1==1)&&(RSEN2==1)&&(LSEN1==1)&&(LSEN2==1))
{IN1=1,IN3=1,IN2=1,IN4=1;}//停止
这里有问题,因为小车不会四个检测的端口会同时出现高电平,因为小车是移动的,应该在前面赋值四个电机端口初值为0,不然有可能在前面的两个端口检测到黑线时,也就是RSEN1==1 RSEN1==1 LSEN1==0 LSEN1==0,因为没有定义,小车可能会乱跑
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1