標(biāo)題: Arduino 尋跡小車代碼 [打印本頁(yè)]

作者: 9uzq    時(shí)間: 2017-11-1 20:31
標(biāo)題: Arduino 尋跡小車代碼

/*
* 走黑線
* 鏈接方法:L298N:ENA,IN1,IN2,IN3,IN4,ENB
引腳12-IN1;引腳13-IN2;引腳10-IN3;引腳11-IN4;
引腳9-ENA;引腳6-ENB;
引腳A0-線左傳感器;引腳A1-線右傳感器;引腳A2-外左傳感器;引腳A3-外右傳感器;遇到黑線
經(jīng)過(guò)試驗(yàn):遇到黑線:指示燈不亮,io=1
          遇到地板:指示燈亮, io=0*/
#define left_motor_go    digitalWrite(10,1),digitalWrite(11,0)   //左輪前進(jìn)
#define left_motor_back  digitalWrite(10,0),digitalWrite(11,1) //左輪后退
#define right_motor_go   digitalWrite(12,0),digitalWrite(13,1)  //右輪前進(jìn)
#define right_motor_back digitalWrite(12,1),digitalWrite(13,0)//右輪后退
#define line_left  digitalRead(A0)  //線左傳感器
#define line_right digitalRead(A1) //線右傳感器
#define out_left   digitalRead(A2)   //外左傳感器
#define out_right  digitalRead(A3)  //外右傳感器
#define Stop_left digitalWrite(9,0)
#define Stop_right digitalWrite(6,0)
#define n0 (out_left==1)&&(out_right==1) // 外傳感器全部檢測(cè)到黑線
#define n1 (out_left==1)&&(out_right==0)  //外左傳感器檢測(cè)到黑線
#define n2 (out_left==0)&&(out_right==1)  // 外右傳感器檢測(cè)到黑線
#define n3 ((out_left==1)&&(out_right==1)&&(line_right==1)&&(line_left==1)) //傳感器全部檢測(cè)到黑
#define n4 ((out_left==0)&&(out_right==0)&&(line_right==0)&&(line_left==0)) //傳感器全部檢測(cè)到bai
//////////////////////////////////////////////////////////////////////
void zitai(boolean f1,byte s1,boolean f2,byte s2)//(左輪方向:1前進(jìn),0后退。速度:0~255;右輪方向:1前進(jìn),0后退。速度:0~255.)
{
  if(f1)
    left_motor_go; //左電機(jī)前進(jìn)
  else
    left_motor_back; //左電機(jī)后退
  if(f2)
    right_motor_go;//右電機(jī)前進(jìn)
  else  
    right_motor_back;//右電機(jī)后退
  analogWrite(9,s1);//0~255,值越大電壓越高
  analogWrite(6,s2);
}
//跟著黑線走
void zhixing(){
  if((line_left == 1)&& (line_right == 1))  //go strite
     {
         zitai(1,200,1,200);
     }  
     else if((out_left==0)&&(out_right==0)&&(line_left == 0)&& (line_right ==1)) //turn right
     {
         zitai(1,190,1,190);
     while((out_left==0)&&(out_right==0)&&(line_right==0)&&(line_left==0))          //line_right == 1,line_left==1,線右,線左探測(cè)到地板,一直左轉(zhuǎn)
    {
      zitai(1,200,0,200);      //慢慢原地右轉(zhuǎn)
     }
     }
    else if((out_left==0)&&(out_right==0)&&(line_left == 1)&& (line_right == 0))  //turn left
     {
       zitai(1,190,1,190);
     while((out_left==0)&&(out_right==0)&&(line_right==0)&&(line_left==0))          //line_right == 1,line_left==1,線右,線左探測(cè)到地板,一直左轉(zhuǎn)
    {
      zitai(0,200,1,200);      //慢慢原地左轉(zhuǎn)
     }
     }
  }
void  wangline(void) //跟著直線走
{
    if((line_left == 1)&& (line_right == 1))  //go strite
     {
         zitai(1,230,1,230);
     }  
     while((out_left==0)&&(out_right==0)&&(line_left == 0)&& (line_right ==1)) //turn right
     {
         zitai(1,230,0,200);
        zitai(1,230,0,200);
        zitai(1,220,1,220);
      while((out_left==0)&&(out_right==0)&&(line_right==0)&&(line_left==0))          //line_right == 1,line_left==1,線右,線左探測(cè)到地板,一直左轉(zhuǎn)
    {
      zitai(1,230,0,230);      //慢慢原地右轉(zhuǎn)
     }
     }
    while((out_left==0)&&(out_right==0)&&(line_left == 1)&& (line_right == 0))  //turn left
    {
       zitai(0,200,1,230);
      zitai(0,200,1,230);
      zitai(1,220,1,220);
      while((out_left==0)&&(out_right==0)&&(line_right==0)&&(line_left==0))          //line_right == 1,line_left==1,線右,線左探測(cè)到地板,一直左轉(zhuǎn)
    {
      zitai(0,230,1,230);      //慢慢原地左轉(zhuǎn)
     }
     }
/*else                     //stop
    {
     zitai(0,100,0,100);
     }*/
}
  

_3.zip

1.82 KB, 下載次數(shù): 14, 下載積分: 黑幣 -5


作者: porcorosso    時(shí)間: 2017-11-2 17:04
非常非常感謝,這是幾路的尋線器
作者: barit    時(shí)間: 2019-8-9 23:38
編譯不了,錯(cuò)誤代碼沒(méi)有void setup和void loop




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1