Я познакомился с этим ультразвуковым детектором с простым кодом. Все, что я искал, - это выход (мой светодиод), который загорается всякий раз, когда детектор воспринимает объект в пределах нескольких сантиметров. Однако светодиод остается гореть, и последовательный монитор просто продолжает выплевывать значение «0.00 см»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 лучше всего работает. –