我的名字是Dmitrij,我想将HC-SR04连接到Arduino,这样我就可以测量距离。问题是传感器连续发送4-5个正确的结果,然后发送5-6个错误的结果。
我试着换掉Arduino和传感器也没什么用。最后,当我写这篇文章的时候,我差不多解决了这个问题。在我将传感器连接到Arduino 5V后,传感器从外部电源模块(https://i.imgur.com/Zjg22ka.png)获得5伏电压,一切正常。有没有办法解决这个问题?
int echo = 8;
int trig = 9;
float duration, distance;
void setup() {
pinMode(echo, INPUT);
pinMode(trig, OUTPUT);
digitalWrite(trig, LOW);
Serial.begin (9600);
}
void loop() {
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
duration = pulseIn(echo, HIGH);
distance = (duration / 2) * 0.0344;
Serial.print("Distance = ");
Serial.print(distance);
Serial.println(" cm");
delay(500);}
这是传感器对准墙上时的输出。真正的距离大约是15-16厘米,我不明白为什么它还会输出其他东西。
Distance = 15.70 cm
Distance = 15.70 cm
Distance = 15.65 cm
Distance = 15.70 cm
Distance = 3.92 cm
Distance = 2.25 cm
Distance = 1.67 cm
Distance = 0.48 cm
Distance = 0.55 cm
Distance = 6.73 cm
Distance = 15.65 cm
Distance = 15.65 cm
Distance = 15.65 cm
Distance = 15.65 cm
Distance = 4.11 cm
Distance = 2.27 cm
Distance = 1.50 cm
Distance = 0.50 cm
Distance = 0.50 cm
Distance = 6.33 cm 诸若此类。
发布于 2019-09-11 07:52:44
这取决于你扫描的表面有多弯曲,有时它会给你错误的信息,试着扫描一个平坦的表面,看看你的输出会是什么。
发布于 2019-09-11 17:10:34
https://stackoverflow.com/questions/57879209
复制相似问题