49741933o 发表于 2014-2-25 21:23:06

这个寻线避障机器人,避障不了,求解答!!

http://v.qq.com/boke/page/o/z/q/o0126x118zq.html里面有我的操作。。
下面是代码:
void setup()
{
pinMode(8,OUTPUT);//定义输入、输出接口
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(11,INPUT);
pinMode(12,INPUT);
pinMode(14,INPUT);       /*这个假如换成13的话,接在这个口的mini避障传感器总是亮着微弱的光,这是为什么?*/
pinMode(2,INPUT);
pinMode(3,INPUT);
pinMode(4,INPUT);
}
void qianjin()//前进
{
   digitalWrite(10,300);//输入数字量进行设定速度
   digitalWrite(5,300);
   digitalWrite(9,HIGH);//使直流电机(右)顺时针转
   digitalWrite(8,LOW);
   digitalWrite(7,HIGH);//使直流电机(左)逆时针转
   digitalWrite(6,LOW);
}
void youzhuan()//右转
{
   
   digitalWrite(10,100);//输入数字量进行设定速度
   digitalWrite(5,100);
   digitalWrite(6,LOW);//使直流电机(右)逆时针转
   digitalWrite(7,HIGH);
   digitalWrite(8,HIGH);//使直流电机(左)逆时针转
   digitalWrite(9,LOW);
}
void zuozhuan()//左转
{
   
   digitalWrite(10,100);//输入数字量进行设定速度
   digitalWrite(5,100);
   digitalWrite(6,HIGH);//使直流电机(右)顺时针转
   digitalWrite(7,LOW);
   digitalWrite(8,LOW);//使直流电机(左)顺时针转
   digitalWrite(9,HIGH);
}
void tingzhi()//停止
{
   digitalWrite(6,HIGH);//使直流电机(右)制动
   digitalWrite(7,HIGH);
   digitalWrite(8,HIGH);//使直流电机(左)制动
   digitalWrite(9,HIGH);
}
void houtui(int a)
{
   analogWrite(10,a);//输入模拟值进行设定速度

   analogWrite(5,a);
   digitalWrite(6,HIGH);//使直流电机(右)逆时针转
   digitalWrite(7,LOW);
   digitalWrite(9,LOW);//使直流电机(左)顺时针转
   digitalWrite(8,HIGH);
}
void loop()
{
    int r,m,l;//定义寻线传感器接口
    r=digitalRead(2);//定义右侧寻线接口
    m=digitalRead(3);//定义中间寻线接口
    l=digitalRead(4);//定义左侧寻线接口
    int r1,m1,l1;//定义避障传感器接口
    r1=digitalRead(14);//定义右侧避障接口
    m1=digitalRead(12);//定义中间避障接口
    l1=digitalRead(11);//定义左侧避障接口
    if(l==LOW || m==LOW || r==LOW)//判断是否有黑线 有则继续
    {
      if(l==LOW && m==LOW && r==LOW)
      qianjin();
      if(l==HIGH && m==LOW && r==HIGH)
      qianjin();
      if(l==HIGH && m==LOW && r==LOW)
    {
       youzhuan();
      delay(400);
   // tingzhi();
   // delay(80);
    }
      if(l==LOW && m==LOW && r==HIGH)
    {
      zuozhuan();
   delay(400);
   // tingzhi();
   // delay(80);
   }
      if(l==HIGH && m==HIGH && r==LOW)
       {
       youzhuan();
   delay(400);
   // tingzhi();
      //delay(80);
    }
      if(l==LOW && m==HIGH && r==HIGH)
   {
      zuozhuan();
      delay(400);
   // tingzhi();
   // delay(80);
    }
    }
    if(l==HIGH && m==HIGH && r==HIGH)//判断是否有障碍 有则继续
    {
    if(l1==HIGH && m1==HIGH && r1==HIGH)
    qianjin();
    if(l1==HIGH && m1==LOW && r1==HIGH)
    {
      houtui(200);
      delay(400);
      zuozhuan();
      delay(300);
    }
    if(l1==HIGH && m1==HIGH && r1==LOW)
    zuozhuan();
    if(l1==LOW && m1==HIGH && r1==HIGH)
    youzhuan();
    if(l1==HIGH && m1==LOW && r1==LOW)
    zuozhuan();
    if(l1==LOW && m1==LOW && r1==HIGH)
    youzhuan();
    if(l1==LOW && m1==LOW && r1==LOW)
      {
      houtui(200);
      delay(400);
      zuozhuan();
      delay(300);
      }
    }
}

shihaipeng04 发表于 2014-2-26 00:46:38

3个是距离传感器么? 下面那一坨5个是啥东西?

49741933o 发表于 2014-2-26 12:00:16

shihaipeng04 发表于 2014-2-26 00:46 static/image/common/back.gif
3个是距离传感器么? 下面那一坨5个是啥东西?

图上3个是红外避障传感器,那5个是红外寻线传感器。。视频你看了没?

49741933o 发表于 2014-2-27 11:45:44

49741933o 发表于 2014-2-26 12:00 static/image/common/back.gif
图上3个是红外避障传感器,那5个是红外寻线传感器。。视频你看了没?

哦,难怪没人回答我
页: [1]
查看完整版本: 这个寻线避障机器人,避障不了,求解答!!