標題:
arduino藍牙小車加避障代碼
[打印本頁]
作者:
TJCL1451681
時間:
2017-6-6 12:54
標題:
arduino藍牙小車加避障代碼
#define IN1 4
#define IN2 5
#define IN3 6
#define IN4 7
void forward();
void back();
void turnLeft();
void turnRight();
void _stop();
int ledpin=13;
int i;
int TrigPin = 8;
int EchoPin = 9;
void setup()
{ pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
pinMode(IN3,OUTPUT);
pinMode(IN4,OUTPUT);
pinMode(TrigPin, OUTPUT);
pinMode(EchoPin, INPUT);
pinMode(ledpin,OUTPUT);
Serial.begin(9600);
}
void loop()
{
i= Serial.read();
digitalWrite(TrigPin, LOW); // 使發(fā)出發(fā)出超聲波信號接口低電平2μs
delayMicroseconds(2);
digitalWrite(TrigPin, HIGH); // 使發(fā)出發(fā)出超聲波信號接口高電平10μs,這里是至少10μs
delayMicroseconds(10);
digitalWrite(TrigPin, LOW); // 保持發(fā)出超聲波信號接口低電平
int distance = pulseIn(EchoPin, HIGH); // 讀出脈沖時間
distance= distance/58; // 將脈沖時間轉(zhuǎn)化為距離(單位:厘米)
Serial.println(distance); //輸出距離值
delay(50);
if (distance <=30)
{//如果距離大于50厘米小燈亮起
digitalWrite(ledpin,HIGH);
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
}//如果距離小于50厘米小燈熄滅
else
digitalWrite(ledpin,LOW);
//if(Serial.available())
//i= Serial.read();
switch(i)
{ case'1':{turnLeft();break;}
case'2':{forward();break;}
case'3':{turnRight();break;}
case'4':{_stop();break;}
case'5':{back();break;}
}
}
void forward()
{ digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
}
void back()
{ digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
}
void turnLeft()
{ digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
}
void turnRight()
{ digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
}
void _stop()
{ digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
}
復制代碼
作者:
xqxyk
時間:
2017-6-8 11:24
新手看懂了
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1