找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3281|回復(fù): 0
收起左側(cè)

白標(biāo) 小車尋跡程序

[復(fù)制鏈接]
ID:291454 發(fā)表于 2018-3-13 20:08 | 顯示全部樓層 |閱讀模式
int pin[3] = {A0, A4, A3};           //從左至右對應(yīng)
int velocity = 210;                        //定義速率
byte value;
byte value_his = 0; //記錄上一次的傳感器值
void setup()
{
  pinMode( 5 , OUTPUT);//右
  pinMode( 6 , OUTPUT);
  pinMode( 9 , OUTPUT);
  pinMode( 10 , OUTPUT);

}

void loop()
{

   value = 0;
        for(int i=0; i<3; i++)
        {
            value |= (digitalRead(pin[i]) << i);
        }

        if(value == 0x00)
        { //當(dāng)傳感器都沒有觸發(fā)時默認(rèn)為上一次的值
          value = value_his;
        }
        switch (value)
        {
          case 0x07: //全部觸發(fā)
          Forwards();
          break;
          case 0x06: //觸發(fā)右邊兩個
          while(!digitalRead(pin[1])){ //通過while 循環(huán)使小車回到跑道中間
          Right();
        }
        break;
        case 0x04: //觸發(fā)右邊一個
        while(!digitalRead(pin[1]))
        {
          Right();
        }
        break;
        case 0x03: //觸發(fā)左邊兩個
          while(!digitalRead(pin[1]))
          {
            Left();
          }
        break;
        case 0x02: //觸發(fā)中間一個
          Forwards();
          break;
        case 0x01: //觸發(fā)左邊一個
          while(!digitalRead(pin[1]))
          {
          Left();
          }
          break;


        }
        value_his = value;

  }

void Left()
{
analogWrite( 5 ,230);//左
analogWrite( 6 ,0 );
analogWrite( 9 ,240);
analogWrite( 10 , 0);
delay(1);
}

void Right()
{
analogWrite( 5 ,230);
analogWrite( 6 , 0 );
analogWrite( 9 ,220);
analogWrite( 10 ,0 );
delay(1);
}

void Forwards()
{
analogWrite( 5 ,240 );//左
analogWrite( 6 , 0 );
analogWrite( 9 ,220);
analogWrite( 10 ,0 );
delay(1);
}
void back()
{
analogWrite( 5 , 0 );
analogWrite( 6 ,230 );
analogWrite( 9 , 0 );
analogWrite( 10 ,255 );
delay(1);
}

回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表