
Mit dem Ultraschallsensor kann man Entfernungen messen. Dazu wird ein Ultraschallimpuls ausgesendet und die vergangene Zeit gemessen, die der Impuls braucht, um wieder zurückgeworfen zu werden. Das Prinzip hat sich der Mensch von der Fledermaus abgeschaut.
Das Anschließen folgt nun diesen zwei Schritten (Aussenden und Erfassen des Impulses). So überrascht es nicht, dass es vier Anschlüsse gibt:
- Zwei für die Betriebsspannung (VCC für 5V und GND),
- einen für das Aussenden des Signals (Trigger) und
- einen für das Erfassen des Signals (Echo).
Es gibt auch Module, die nur 3 Anschlüsse besitzen. Hier werden beide Funktionen über denselben Pin erledigt (es wird also ein einer Stelle auf den Pin geschrieben und an anderer Stelle vom selben Pin gelesen).

int trigger=7; //Trigger-Pin
int echo=6; //Echo-Pin
long zeit=0; //zum Zwischenspeichern der verstrichenen Zeit zwischen Aussenden und Empfangen des Impulses
long entfernung=0; //zum späteren Berechnen der Entfernung
void setup(){
Serial.begin (9600); //Serielle Schnittstelle zur Übermittlung von Daten öffnen
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
}
void loop(){
digitalWrite(trigger, HIGH); //Ein Impuls wird...
delay(10); //für 10ms ausgesendet...
digitalWrite(trigger, LOW); //und abgeschaltet.
zeit = pulseIn(echo, HIGH); //Die Zeit für das Eintreffen der Reflexion in Mikrosekunden!
entfernung = (zeit/2) * 0.03435; //mit Hilfe der Schallgeschwindigkeit den zurückgelegten Weg bestimmen
if (entfernung >= 200 || entfernung <= 2) { //bei sehr kurzen oder sehr nahen Entfernungnen ist der Sensor leider nicht zuverlässig
Serial.println("unzuverlässiger Wertebereich");
}else{
Serial.print(entfernung);
Serial.println(" cm");
}
delay(100);
}

…Unter der Haube
Schallgeschwindigkeit
Da wir nur die verstrichenen Mikrosekunden, also die verstrichene Zeit und nicht direkt die Entfernung messen, müssen wir wissen, wie schnell sich Schall üblicherweise ausbreitet, um daraus die (zurückgelegte) Entfernung zu berechnen.
Auch wenn dies minimal von Temperatur und Luftdruck abhängt, so können wir davon ausgehen, dass sich Schall mit etwa 343,5m/s ausdehnt.
In Zeile 18 wird diese Zahl genutzt, um die Entfernung in cm aus der Zeitspanne in Millisekunden zu berechnen:
- Zunächst wird durch 2 geteilt, da wir bedenken müssen, dass unser Signal zum Hindernis hin und zurück wandern muss. Wir sind aber nur an der einfachen Strecke, der Entfernung, interessiert.
- Danach wird mit 0,03435 multipliziert. Dies ist folgender Umrechnung geschuldet:
- 343,5 m/s = 34350 cm/s = 34,350 cm/ms =0,03435 cm/µs (Mikrosekunde)
Fun Fact: Mit dem gleichen Prinzip kann man bei einem Gewitter in Erfahrung bringen, in welcher Entfernung ein Blitz eingeschlagen ist. Zähle einfach die Sekunden zwischen einem größeren Blitz und dessen Donner und teile durch 3 und Du erhältst die ungefähre Entfernung in km! Das Licht breitet sich immerhin mit wesentlich höherer Geschwindigkeit aus (und ist in diesem Sinne „direkt da“). Der Schall des Donners legt m it 343m/s also ungefähr 1/3 km pro Sekunde zurück, wodurch sich die Rechnung erklärt.