我正在做一个项目,我想使用超声波传感器通过测量距离和到达终点来计算玩具车的速度。我们看到了从程序开始到现在已经过去的时间。但是我发现我使用的传感器只能精确到 20 厘米。有什么建议么?
#include <NewPing.h>
int i=0;
float distance;
long duration;
int trigpin = 9;
int echopin = 10;
int s;
boolean warrant=true;
unsigned long time;
void setup() {
// put your setup code here, to run once:
pinMode(trigpin, OUTPUT);
pinMode(echopin, INPUT);
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
// put your main code here, to run repeatedly:
time=millis();
if(warrant==true){
s=distance;
digitalWrite(trigpin, LOW);
delay(2);
digitalWrite(trigpin, HIGH);
delay(10);
digitalWrite(trigpin, LOW);
duration = pulseIn(echopin, HIGH);
distance = duration * 0.034 / 2;
if((distance-s)>1){
Serial.println(distance);
}
delay(200);
if(distance>30){
Serial.println(distance/time);
Serial.println("done");
delay(10);
warrant=false;
}}}
理想情况下,它应该很容易测量速度。该代码运行良好,但在 20 厘米后就崩溃了。可能是由于传感器的限制