0

我正在做一个项目,我想使用超声波传感器通过测量距离和到达终点来计算玩具车的速度。我们看到了从程序开始到现在已经过去的时间。但是我发现我使用的传感器只能精确到 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 厘米后就崩溃了。可能是由于传感器的限制

4

1 回答 1

0

如果传感器只能精确到 20 厘米,并且您需要测量更大,则应该更换传感器以获得更好的传感器。没有代码可以使您的传感器更好。

于 2019-04-17T15:08:13.917 回答