PulseIn läuft so ab:
pulseIn(); // warten ob an dem Pin was passiert, im Normalfall (kein Timeout eingestellt) maximal ne volle Sekunde (wie delay(1000)).
Die Zeit wird kürzer, wenn innerhalb der Sekunde das Echo eintrifft.
Dann ist das Warten beendet.
Aber man _kann_ eben auch ein Timeout angeben- damit kann man die Verzögerung auf das Nötigste beschränken (der Ping braucht nur bis zum Hindernis und zurück).
Das kann man anhand der gewünschten Entfernung problemlos berechnen.
Zu Fuss würd ich es nicht machen, ausser, man kann für den Echo-Eingang nen Interrupt-Pin benutzen. Sonst riskiert man, das Echo zu verpassen, weil der Controller grade was anderes macht.
Lesezeichen