找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

帖子
查看: 7656|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

我的arduino控制小車(chē)巡線過(guò)路口程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:278324 發(fā)表于 2018-1-21 15:42 | 只看該作者 回帖獎(jiǎng)勵(lì) |正序?yàn)g覽 |閱讀模式
bool cross;
void setup() {
  // put your setup code here, to run once:
  pinMode(12,INPUT);
  pinMode(13,INPUT);
  pinMode(8,INPUT);
  pinMode(5,OUTPUT);
  pinMode(6,OUTPUT);
  pinMode(9,OUTPUT);
  pinMode(10,OUTPUT);
  Serial.begin(9600);
  cross=false;
  Serial.println("Initialization completion!");
}
#define LS 12
#define RS 13
#define MS 8
#define LMF 9
#define LMB 10
#define RMF 5
#define RMB 6
void loop() {
  // put your main code here, to run repeatedly:
  void TURNLEFT();
  void TURNRIGHT();
  void FORWARD();
  void STOP();
  static int i=0;
  if(digitalRead(LS)==0&&digitalRead(RS)==0&&cross==0)
  {
    Serial.println("001");
    FORWARD();
  }
  if(digitalRead(LS)==1&&digitalRead(RS)==1&&digitalRead(MS)==1)
  {
    Serial.println("111");
    cross=true;
    i++;
    switch(i%2)
    {
      case 1:
      FORWARD();
      delay(650);
      do
      {
        TURNRIGHT();
         Serial.print("cross1=");
         Serial.println(cross);
         if(digitalRead(LS)==0&&digitalRead(RS)==0&&digitalRead(MS)==1)
          break;
      }while(1);
      Serial.println("001");
      break;
      case 0:
      FORWARD();
      delay(650);
      do
      {
        TURNLEFT();
        Serial.print("cross1=");
         Serial.println(cross);
       if(digitalRead(LS)==0&&digitalRead(RS)==0&&digitalRead(MS)==1)
          break;
      }while(1);
      Serial.println("002");
      break;
      default :STOP();break;
    }
      Serial.print("i%2=");
      Serial.println(i%2);
      cross=false;
      Serial.print("cross2=");
      Serial.println(cross);
      }
  if(digitalRead(LS)==0&&digitalRead(RS)==1&&cross==0)
  {
    Serial.println("01");
    TURNRIGHT();
  }
  if(digitalRead(LS)==1&&digitalRead(RS)==0&&cross==0)
{
   Serial.println("10");
   TURNLEFT();
  }
}
void TURNLEFT()
{
  digitalWrite(LMF, LOW);
  analogWrite(LMB,100);
  analogWrite(RMF,200);
  digitalWrite(RMB,LOW);
}
void TURNRIGHT()
{
  analogWrite(LMF, 200);
  digitalWrite(LMB,LOW);
  digitalWrite(RMF,LOW);
  analogWrite(RMB,100);
}
void FORWARD()
{
  analogWrite(LMF,200);   
  digitalWrite(LMB,LOW);
  analogWrite(RMF,200);
  digitalWrite(RMB,LOW);
}
void STOP()
{
  digitalWrite(LMF, LOW);
  digitalWrite(LMB,LOW);
  digitalWrite(RMF,LOW);
  digitalWrite(RMB,LOW);
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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