1
我开始用简单的代码知道这个超声波探测器。我一直在寻找的是一个输出(我的LED),当探测器在这么多厘米内感应到物体时点亮。 然而,LED仍然亮着,并且串口监视器只是继续吐出值'0.00cm'Arduino HC-SR04 NewPing代码不工作
我将不胜感激任何帮助,谢谢。
(我很抱歉,如果有一个非常简单的错误我都忽略)
#include <NewPing.h>
int TriggerPIN = 2;
int EchoPIN = 3;
int LEDPIN = 7;
void setup()
{
Serial.begin(9600);
//That started the distance monitor
pinMode(LEDPIN, OUTPUT);
pinMode(TriggerPIN, OUTPUT);
pinMode(EchoPIN, INPUT);
}
void loop()
{
float Distance, Duration;
digitalWrite(TriggerPIN, LOW);//These three blink the distance LED
delayMicroseconds(2);
digitalWrite(TriggerPIN, HIGH);
delayMicroseconds(10);
digitalWrite(TriggerPIN, LOW);
Duration = pulseIn(EchoPIN, HIGH); //Listening and waiting for wave
Distance = (Duration*0.034/2);//Converting the reported number to CM
if (Distance > 50)
{
digitalWrite(LEDPIN,LOW);
}
else
{
digitalWrite(LEDPIN,HIGH);
}
Serial.print(Distance);Serial.print("cm");
Serial.println(" ");
delay(200);
}
这给了我数字!但现在它一直在180左右波动,有时下降到178,这并不是通过在传感器周围猛烈挥动而产生的。 – SirBuncey
好!如果您不使用内置转换,是否是这种情况?我以前遇到过cm转换的问题。看看是否不使用convert_cm帮助,或者改变MAX_DISTANCE。 –
请注意,声呐的精度并不完美。请尝试在不同距离处放置更大,更稳定的物体。我发现一张白色A4纸的效果最好。 –