避免使用带开关的dfrobot arduino代码

时间:2015-01-05 11:13:54

标签: arduino

有人可以为我提供避免机器人的arduino代码,机器人停止并向右转,如果障碍物在左侧,反之亦然。

我正在使用dfrobot miniq发现工具包。 我需要一个带开关盒的代码,例如前进,停止,转动

1 个答案:

答案 0 :(得分:0)

您可以使用if ... else而不是switch。在300cm范围内没有障碍物停止,如果可用的话向前跑,20-40范围内的障碍物向右转。这适用于超声波传感器。

 #define trig 13
 #define echo 12
 void setup()
 {
 pinMode(2,OUTPUT);
 pinMode(3,OUTPUT);
 pinMode(4,OUTPUT);
 pinMode(5,OUTPUT);
 pinMode(6,OUTPUT);
 pinMode(7,OUTPUT);
 pinMode(12,INPUT);
 pinMode(13,OUTPUT);
 Serial.begin(9600);
 digitalWrite(2,HIGH);
 digitalWrite(3,HIGH);
 }
void loop()
{
 int a,b;

 digitalWrite(trig,LOW);
 delayMicroseconds(10);
 digitalWrite(trig,HIGH);
 delayMicroseconds(10);
 digitalWrite(trig,LOW);

 a=pulseIn(echo,HIGH);
 b=a/29.1;
 if(b<300 && b>0)
 {
 //Run forward
  digitalWrite(4,HIGH);
  digitalWrite(5,LOW);
  digitalWrite(6,HIGH);
  digitalWrite(7,LOW);

 if(b>20 && b<40)
 {

 //turn right
  digitalWrite(4,LOW);
  digitalWrite(5,LOW);
  digitalWrite(6,HIGH);
  digitalWrite(7,LOW);
 }
 else
 {

 //stops
  digitalWrite(4,LOW);
  digitalWrite(5,LOW);
  digitalWrite(6,LOW);
  digitalWrite(7,LOW);
  }
  }
 }