Bei dem Ultraschallsensor, handelt es sich um einen HC-SR04. Dieser Sensor ermöglicht es die Entfernung von Objekten zu messen. Dabei werden Ultraschallwellen gesendet (Trig). Das Objekt reflektiert die Ultraschallwellen und diese werden wieder vom Sensor empfangen (Echo). Die dabei vergangene Zeit wird gemessen und lässt auf die Entfernung zurück schließen. 

Der Sensor hat 4 Pins (Vcc, GND, Trig, Echo). Vcc und GND dienen zur Spannungsversorgung und werden an dem 5 V Pin und dem GND Pin angeschlossen. Trig und Echo hingegen sind zuständig für das Senden und Empfangen der Ultraschallwellen.


Abbildung: Ultraschallsensor (HC-SR04)
Quelle: BBS2 Wolfsburg

Ultraschallsensor_Funktion

Abbildung: Funktionsweise des Ultraschallsensors
Quelle: BBS2 Wolfsburg


Wenn der Trig(Trigger) Pin ein HIGH-Signal bekommt sendet der Sensor solange eine Ultraschallwelle, bis der Pin wieder auf LOW gesetzt wird.

Die Ultraschallwelle bewegt sich nun solange vom Sensor weg, bis die Welle auf ein Hindernis trifft. Danach wird die Welle am Hindernis reflektiert und die Welle wandert zurück zum Sensor.

Wenn die Welle wieder den Sensor erreicht, schaltet der Sensor den Echo Pin auf HIGH.
Jetzt kann man die Wegzeit vom Sensor zum Objekt + die Wegzeit vom Objekt zurück zum Sensor auslesen.
Nun muss man nur noch die Zeit in eine Entfernung umrechnen. Dabei wird die gemessene Zeit halbiert, da man nur die Wegzeit vom Sensor zum Objekt benutzen möchte.
Den Wert multipliziert man dann mit der Schallgeschwindigkeit in der Einheit Zentimeter/Mikrosekunde und erhält dann den Wert in Zentimetern.

Des Weiteren überprüft man noch, ob die Entfernung zwischen 300cm und 0cm liegt. Denn Messwerte außerhalb dieses Bereichs sind falsch oder ungenau.
Der ungefähre messbare Wertebereich des HC-SR04 liegt bei ca. 2cm - 3m.


Nun können wir mit den ersten Schritten des Projektes beginnen, nämlich mit dem Aufbau des Ultraschallsensors.

Die Folgenden Abbildungen zeigen wie der Ultraschallsensor an den Microcontroller (ESP32) angeschlossen wird. 

Der HC-SR04 wird an folgenden PIN´s angeschlossen:

Anschlüsse:

VCC - 5 V

GND - GND 

Trig - PIN 33

Echo - PIN 25


Abbildung: Fritzing-Anordnung Ultraschallsensor

Quelle: BBS2 Wolfsburg 

Diese Abbildung zeigt nochmal den Schaltplan für das Anschließen des HC-SR04 Ultraschallsensors:


Abbildung: Fritzing-Schaltplan Ultraschallsensor

Quelle: BBS2 Wolfsburg 

Wenn wir den Ultraschallsensor an den ESP32 angeschlossen haben können wir auch schon mit dem programmieren beginnen. Wenn euch die PINS für Echo und Trig nicht passen, könnt ihr ganz einfach bei #define die Zahl bzw. PINs ändern . 

Source Code:


#define echo 25                         //Anschluss ECHO vom HC-SR04 wurde für PIN 25 festgelegt
#define trig 33                         //Anschluss TRIG vom HC-SR04 wurde für PIN 33 festgelegt
 
//Entfernung als globale Variable anlegen 
int entfernung = 0;

//Funktion zur Messung der Entfernung über den Ultraschallsensor HC-SR04 (mit Echo und Trigger), Einheit: cm
int getEntfernung()
{
  long entfernung = 1;
  long zeitx = 0;
 
  digitalWrite (trig, LOW);				//setzt den Zustand von trig auf LOW
  delayMicroseconds(3);					//setzt eine Pause/Unterbrechung von 3 Mikrosekunden
  noInterrupts();
  digitalWrite(trig, HIGH);				//setzt den Zustand von trig auf HIGH
  delayMicroseconds(10);				//setzt eine Pause/Unterbrechung von 10 Mikrosekunden
  digitalWrite(trig, LOW);
  zeitx = pulseIn(echo, HIGH);
  interrupts();						//unterbricht den Vorgang
  zeitx = (zeitx / 2);					//teilt die Zeit durch 2
  entfernung = zeitx / 29.1;				//teilt die Restzeit durch die Geschwindigkeit des Schalls
  return (entfernung);					//gibt die berechnete Entfernung zurück
}
 
void setup()
{
  pinMode(trig, OUTPUT);			//
  pinMode(echo, INPUT);				//Legt den Eingangstyp des angegebenen PINs fest
}
 
void loop()
{
  entfernung = getEntfernung();
  delay(20);
}
Last modified: Thursday, 1 February 2024, 11:33 AM