Arduino Mikrocontroller Tutorials - Module

Ultraschallsensor (HC-SR04)

Ultraschallsensor Anschluss

Ultraschallmodule kennen wir vor allem von der Einparkhilfe am Auto. Ein 40kHz für den Menschen unhörbarer Ultraschallimpuls wird ausgesendet. Trifft dieser auf ein Hindernis wird er dort reflektiert und kommt zurück zur Sensoreinheit und wird dort wieder detektiert. In dem Sensor ist die gesamte Auswerteelektronik bereits integriert. Sobald der Schall auf Reisen geht wird die Zeit gemessen bis der Schall wieder zum Sensor zurückkommt. Die vom Ultraschall benötigte Zeit wird auf dem ECHO Pin als HIGH Pegel 1:1 ausgegeben.

Im Arduino-Sketch muss der vom Sensor auf dem Echo-Pin gesendete HIGH-Pegel gemessen werden. Die gemessenen Zeit ist dann die vom Schall benötigte Zeit für den Hin- und Rückweg. Um die Entfernung zu bestimmen muss also die halbe Strecke mit der Schallgeschwindigkeit (343,2 m/s) multipliziert werden.

Schaltung und Programmcode

Ultraschallsensor Anschluss
#define TRIGGER 7 #define ECHO 6 long dauer = 0; long entfernung = 0; void setup() { Serial.begin (9600); pinMode(TRIGGER, OUTPUT); pinMode(ECHO, INPUT); } void loop() { // Trigger Signal für 10 ms senden digitalWrite(TRIGGER, HIGH); delay(10); digitalWrite(TRIGGER, LOW); // messen der zeit auf dem ECHOpin in der HIGH anliegt dauer = pulseIn(ECHO, HIGH); // umrechnen halben Strecke mit der Schallgeschwindigkeit entfernung = (dauer / 2) * 0.03432; // Entfernungen > 5m und Messfehler ignorieren if (entfernung >= 500 || entfernung <= 0) { Serial.println("Kein Messwert"); } // Messwerte ausgeben else { Serial.print("Pulsdauer: "); Serial.print(dauer); Serial.print(" µs Entfernung: "); Serial.print(entfernung); Serial.println(" cm"); } delay(1000); }