循迹小车吧 关注:192贴子:190
  • 8回复贴,共1

五路循迹灭火小车

只看楼主收藏回复

急急急,求大神看看我写的五路循迹程序哪有问题,怎么不会往前走,而且检测到白色区域时一边的轮子会一直转,停不下来
/***************************** 寻迹小车 **************************/
int left_moto2 = 2;//left 左
int left_moto4 = 4;
int right_moto6 = 6;//right 右
int right_moto7 = 7;
int pwmleft = 3; // pwm调速左
int pwmright = 5; // pwm调速右
int XJBR; //循迹偏右 8
int XJR; //循迹右 9
int XJM; //循迹中 10
int XJL; //循迹左 11
int XJBL; //循迹偏左 12
int MA;//火焰 15
int MB;//火焰 16
void setup()
{
/****************************** 电机输出口 ***********************************/
pinMode(left_moto2,OUTPUT); //端口2输出
pinMode(left_moto4,OUTPUT);
pinMode(right_moto6,OUTPUT);
pinMode(right_moto7,OUTPUT);
pinMode(pwmleft,OUTPUT);
pinMode(pwmright,OUTPUT);
pinMode(14,OUTPUT);//灭火输出控制
/******************************* 传感器读取口 **************************/
pinMode(8,INPUT); //循迹偏右
pinMode(9,INPUT); //循迹右
pinMode(10,INPUT);//循迹中
pinMode(11,INPUT);//循迹左
pinMode(12,INPUT);//循迹偏左
pinMode(15,INPUT);//火焰1
pinMode(16,INPUT);//火焰2
}
/******************************* 电机输出模式 *****************************/
void qian() //前进
{
digitalWrite(right_moto6,1); //数字端口6输出高电平
digitalWrite(right_moto7,0);
digitalWrite(left_moto2,1);
digitalWrite(left_moto4,0);
analogWrite(pwmleft,120);
analogWrite(pwmright,120);
}
void Lqian() //前进
{
digitalWrite(right_moto6,1); //数字端口6输出高电平
digitalWrite(right_moto7,0);
digitalWrite(left_moto2,1);
digitalWrite(left_moto4,0);
analogWrite(pwmleft,75);
analogWrite(pwmright,75);
}
void hou() //后退
{
digitalWrite(right_moto6,0);
digitalWrite(right_moto7,1);
digitalWrite(left_moto2,0);
digitalWrite(left_moto4,1);
analogWrite(pwmleft,255);
analogWrite(pwmright,255);
}
void you() //右
{
digitalWrite(left_moto2,0);
digitalWrite(left_moto4,0);
digitalWrite(right_moto6,1);
digitalWrite(right_moto7,0);
analogWrite(pwmleft,0);
analogWrite(pwmright,95);
}
void zuo() //左
{
digitalWrite(left_moto2,1);
digitalWrite(left_moto4,0);
digitalWrite(right_moto6,0);
digitalWrite(right_moto7,0);
analogWrite(pwmleft,95);
analogWrite(pwmright,0);
}
void ting() // 停
{
digitalWrite(right_moto6,0);
digitalWrite(right_moto7,0);
digitalWrite(left_moto2,0);
digitalWrite(left_moto4,0);
analogWrite(pwmleft,0);
analogWrite(pwmright,0);
}
void miehuo()
{
digitalWrite(right_moto6,0);
digitalWrite(right_moto7,0);
digitalWrite(left_moto2,0);
digitalWrite(left_moto4,0);
analogWrite(pwmleft,0);
analogWrite(pwmright,0);
digitalWrite(14,LOW);
}
void loop()
{
digitalWrite(14,LOW);
for (int i=0;i <= 1024;i++)
{
XJBR=digitalRead(8);
XJR=digitalRead(9);
XJM=digitalRead(10);
XJL=digitalRead(11);
XJBL=digitalRead(12);
MA=digitalRead(15);
MB=digitalRead(16);
if(MA==HIGH&&MB==HIGH)
{
if(XJBL==LOW&&XJL==LOW&&XJM==LOW&&XJR==LOW&&XJBR==LOW)
{
ting();
}
else if(XJBL==LOW&&XJL==LOW&&XJM==LOW&&XJR==LOW&&XJBR==HIGH)
{
zuo();
}
else if(XJBL==LOW&&XJL==LOW&&XJM==LOW&&XJR==HIGH&&XJBR==LOW)
{
zuo();
}
else if(XJBL==LOW&&XJL==LOW&&XJM==HIGH&&XJR==LOW&&XJBR==LOW)
{
qian;
}
else if(XJBL==LOW&&XJL==HIGH&&XJM==LOW&&XJR==LOW&&XJBR==LOW)
{
you();
}
else if(XJBL==HIGH&&XJL==LOW&&XJM==LOW&&XJR==LOW&&XJBR==LOW)
{
you();
}
else if(XJBL==LOW&&XJL==LOW&&XJM==LOW&&XJR==HIGH&&XJBR==HIGH)
{
zuo();
}
else if(XJBL==LOW&&XJL==LOW&&XJM==HIGH&&XJR==HIGH&&XJBR==LOW)
{
zuo();
}
else if(XJBL==LOW&&XJL==HIGH&&XJM==HIGH&&XJR==LOW&&XJBR==LOW)
{
you();
}
else if(XJBL==HIGH&&XJL==HIGH&&XJM==LOW&&XJR==LOW&&XJBR==LOW)
{
you();
}
else if(XJBL==HIGH&&XJL==HIGH&&XJM==HIGH&&XJR==LOW&&XJBR==LOW)
{
you();
}
else if(XJBL==LOW&&XJL==HIGH&&XJM==HIGH&&XJR==HIGH&&XJBR==LOW)
{
qian();
}
else if(XJBL==LOW&&XJL==LOW&&XJM==HIGH&&XJR==HIGH&&XJBR==HIGH)
{
zuo();
}
else if(XJBL==HIGH&&XJL==HIGH&&XJM==HIGH&&XJR==HIGH&&XJBR==LOW)
{
you();
}
else if(XJBL==LOW&&XJL==HIGH&&XJM==HIGH&&XJR==HIGH&&XJBR==HIGH)
{
zuo();
}
}
else if(MA==LOW&&MB==HIGH)
{
if(XJBL==LOW&&XJL==LOW&&XJM==LOW&&XJR==LOW&&XJBR==LOW)
{
ting();
}
else if(XJBL==LOW&&XJL==LOW&&XJM==LOW&&XJR==LOW&&XJBR==HIGH)
{
zuo();
}
else if(XJBL==LOW&&XJL==LOW&&XJM==LOW&&XJR==HIGH&&XJBR==LOW)
{
zuo();
}
else if(XJBL==LOW&&XJL==LOW&&XJM==HIGH&&XJR==LOW&&XJBR==LOW)
{
qian;
}
else if(XJBL==LOW&&XJL==HIGH&&XJM==LOW&&XJR==LOW&&XJBR==LOW)
{
you();
}
else if(XJBL==HIGH&&XJL==LOW&&XJM==LOW&&XJR==LOW&&XJBR==LOW)
{
you();
}
else if(XJBL==LOW&&XJL==LOW&&XJM==LOW&&XJR==HIGH&&XJBR==HIGH)
{
zuo();
}
else if(XJBL==LOW&&XJL==LOW&&XJM==HIGH&&XJR==HIGH&&XJBR==


IP属地:山东来自Android客户端1楼2016-05-12 16:01回复
    io口与你的传感器位置是否匹配,这个很关键。做循例小车时我也遇到过这个问题


    来自Android客户端2楼2016-05-16 20:03
    收起回复
      2025-06-05 03:16:31
      广告
      楼主,加一下好友啊,我需要你的帮忙


      IP属地:广东3楼2016-10-06 16:37
      收起回复
        楼主可以加一下QQ吗?


        IP属地:上海来自iPhone客户端4楼2016-10-28 00:43
        回复
          需要pwm


          IP属地:上海来自iPhone客户端5楼2016-10-28 00:43
          回复
            如何解决?是程序问题还是接线!急!


            来自手机贴吧7楼2016-12-28 02:49
            回复