我开发了一种代码,用超声波传感器来测量距离。但是好像不管用。它只输出0。这是代码。
`#包括
void setup() {
串行开始(9600);
}
void循环(){
int dist=getcm();
延迟(100);
序列号println(dist);
}
int getcm() {
digitalWrite(A0,低);
延迟微秒(2);
数字写入(A0,高);
延迟微秒(10);
digitalWrite(A0,低);
int持续时间=pulseIn(A1,高);
int距离=(持续时间*.0343)/2;
距离=圆(距离);
回程距离;
}'
代码有什么问题吗?还是问题出在传感器上?
我不知道这些传感器上的接口是如何工作的,但是,有更简单的方法可以做到这一点,例如使用 NewPing.h 库。
#include <NewPing.h>
NewPing sonar (10, 11, 20);
void setup() {
Serial.beign(9600);
delay(50);
}
void loop() {
Serial.print("The Distance is:");
Serial.println(sonar.ping_cm());
delay(1000);
}
这应该行得通。所以,尝试这种方式,如果它仍然不起作用,它可能是一个有故障的传感器。