我想從我的傳感器接收信息,但是我的輸出始終只是0,在我的代碼中是否有錯誤?所有硬件相關的都做得很好。Arduino超聲波距離傳感器
loop()
{
long duration, inches, cm;
pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(5);
digitalWrite(pingPin, LOW);
pinMode(pingPin, INPUT);
duration = pulseIn(pingPin, HIGH);
inches = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);
Serial.print(inches);
Serial.print("in; ");
Serial.print(cm);
Serial.print("cm");
Serial.println();
}
long microsecondsToInches(long microseconds)
{
return microseconds/74/2;
}
long microsecondsToCentimeters(long microseconds)
{
return microseconds/29/2;
}
你打印'duration'了呢? – zmo
'pingPin'? '持續時間'的價值是什麼? –
pingPin是我用來ping的引腳,我知道這個網站堅持不把自己理解的代碼,但它是一個值爲7的常量整數。我使用最後兩個函數來使用它們各自的公式將持續時間轉換爲距離。此外,這是我使用的傳感器的型號http://www.amazon.co.uk/gp/product/B008AFFC9G/ref=oh_details_o01_s00_i00?ie=UTF8&psc=1 – Ted