Zu Beginn der Skizze werden zwei Konstanten erstellt, die echoPin und
trigPin genannt werden und deren Werte auf 2 bzw. 3 gesetzt werden.
Diese Werte stellen digitale Pins des
Atmega328P
dar, die mit echoPin
und trigPin des Sensors verbunden sind. Dann werden zwei Variablen
erstellt, eine für die Messung der Zeit, genannt duration, und die zweite
für den berechneten Abstand, genannt distance. In der setup()-Funktion
stellen wir die Pin-Modi der verwendeten Pins ein; der Echo-Pin wird als
INPUT und der Trig-Pin als OUTPUT definiert. Am Ende der setup()-
Funktion starten wir die serielle Kommunikation mit einer Baudrate von
9600.
In der loop()-Funktion setzen wir zuerst den Zustand von trigPin auf LOW,
und warten für 2us. Dann geht der Zustand der Variablen trigPin auf
HIGH, und der Algorithmus wartet für 10us. Danach ändert sich der Zustand
von trigPin auf LOW.
Mit der nächsten Codezeile messen wir das Zeitintervall zwischen der
Übertragung und der Erkennung der Ultraschallwelle und speichern es in
der Variable duration: duration = pulseIn(echoPin, HIGH);
Um den Abstand zu berechnen, benutzen wir diese Zeile Code:
distance = duration * 0.034 / 2;
Am Ende der Funktion "loop()" geben wir die Entfernungsdaten auf dem
seriellen Monitor aus. Außerdem gibt es am Ende der loop()-Funktion
eine Verzögerung von 1000 Milisekunden. Dies ist die Verzögerung
zwischen zwei Messungen.