具有arduino的超声波传感器电路-控制电机速度

时间:2019-04-30 15:51:32

标签: arduino electronics

我用arduino构建了一个电路,该电路使用超声波传感器检测汽车何时靠近物体。当汽车到达一定距离时,它将改变电动机的速度,最终它将在撞到物体之前停止汽车。

我内部有3条条件语句,但是当到达第一个距离时,我似乎可以改变电动机的速度。程序将输入else if语句,并且可以从串行监视器中看到它,但是电动机只是停止而不是减速。任何帮助将不胜感激。

// Reads the echoPin, returns the sound wave travel time in microseconds
duration = pulseIn(echoPin, HIGH);

// Calculating the distance
distance= duration*0.034/2;

safetyDistance = distance;
if (safetyDistance <= 5){
  digitalWrite(buzzer, HIGH);
  digitalWrite(ledPin, HIGH);
  digitalWrite(4, LOW);
  digitalWrite(3, LOW);


}

else if (safetyDistance > 5 && safetyDistance <= 50 ){
digitalWrite(buzzer, HIGH);
  digitalWrite(ledPin, LOW);
  digitalWrite(4, HIGH);
  digitalWrite(3, LOW);
  analogWrite(2, 100);
  digitalWrite(6, HIGH);
  digitalWrite(5, LOW);
  analogWrite(7, 100);
  Serial.print("Warning , slow down ");  
}
else{
  digitalWrite(buzzer, LOW);
  digitalWrite(ledPin, LOW);
  digitalWrite(4, HIGH);
  digitalWrite(3, LOW);
  analogWrite(2, 255);
  digitalWrite(6, HIGH);
  digitalWrite(5, LOW);
  analogWrite(7, 255);
}
// Prints the distance on the Serial Monitor
Serial.print("Distance: ");
Serial.println(distance);
}

理想的结果是,当距离小于50且大于5时,电动机速度会降低。

1 个答案:

答案 0 :(得分:0)

由于电动机太慢并且经历了static friction,汽车停了下来。

如果要移动电动机,可以:

  • 增加电动机的电压
  • 使用下面的两段代码之一(几毫秒)增加最大功率,然后将电动机功率设置为所需的水平(不要太低,否则它们将不起作用)
  

digitalWrite(#PIN,HIGH)

     

analogWrite(#PIN,1023)

我希望我能帮上忙