有人可以为我提供避免机器人的arduino代码,机器人停止并向右转,如果障碍物在左侧,反之亦然。
我正在使用dfrobot miniq发现工具包。 我需要一个带开关盒的代码,例如前进,停止,转动
答案 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);
}
}
}