Hallöchen,
ich habe jetzt schon einige Foren und Beiträge durch, aber nirgends eine Erklärung gefunden, die ich nachvollzeiehen kann
Es geht um die Formel, bzw. Berechnung des Abstandes zu einem Gegenstand mittels Ultraschall.
Kann mir vielleicht mal jemand verständlich erklären, wie das genau funktioniert?
Welchen Wert gibt mir die Methode "pulseIn" genau heraus?
Ich habe gelesen, dass es die Zeit vom Senden, bis zum Empfangen des Signals in us sei.
Wieso rechne ich nicht mit der Formel s = (v*t) / 2 ?
Schall breitet sich mit 2,9 us/mm aus. (343m/s)
Denn wenn ich diese verwende und sie so bilde s = Empfangsdauer * 2,9 / 2, ist mein Ergebnis um Faktor 10 zu groß.
Es dreht sich um folgenden Sketch!
int Trigger = 8 ;
int Echo = 9 ;
int LED = 10 ;
long mm, Empfangsdauer ;
void setup ()
{
Serial.begin (9600) ;
pinMode (Trigger, OUTPUT) ;
pinMode (Echo, INPUT) ;
pinMode (LED, OUTPUT) ;
}
void loop ()
{
digitalWrite (Trigger, LOW) ;
delayMicroseconds (2) ;
digitalWrite (Trigger, HIGH) ;
delayMicroseconds (5) ;
digitalWrite (Trigger, LOW) ;
Empfangsdauer = pulseIn (Echo, HIGH) ;
mm = (Empfangsdauer / 2.9) / 2 ;
if (mm <= 150)
{
digitalWrite (LED, HIGH) ;
}
else
{
digitalWrite (LED, LOW) ;
}
Serial.print (mm) ;
Serial.print (" mm, ") ;
Serial.println (Empfangsdauer) ;
delay (100) ;
}
Vielen Dank schonmal im Vorraus!