HC-SR04 Ultraschallsensor an Raspberry Pi anschließen – Praktischer Leitfaden
In früheren Projekten behandelten wir Temperatursensoren, PIR-Bewegungsmodule und grundlegendes GPIO-Interfacing. Der HC-SR04 Ultraschall-Entfernungsmesser ist eine beliebte Wahl für Distanzmessung, aber sein 5-V-Ausgang muss auf 3,3 V reduziert werden, um die GPIO-Pins des Raspberry Pi zu schützen. Dieses Tutorial führt Sie durch die Physik, Elektronik und den Python-Code, der erforderlich ist, um den Sensor sicher anzuschließen und zu nutzen.
Benötigte Materialien
- HC-SR04 Ultraschallsensor
- 1 kΩ Widerstand
- 2 kΩ Widerstand
- Jumper-Kabel (male-to-female)
- Optional: Breadboard
Funktionsweise von Ultraschallsensoren
Schall breitet sich als Druckwellen aus; die Tonhöhe wird durch die Frequenz dieser Wellen bestimmt. Ultraschallsensoren senden hochfrequenten Schall aus, der für Menschen unhörbar ist, der an nahegelegenen Objekten reflektiert wird und dann das Echo einfängt. Durch Messen der Hin- und Rücklaufzeit des Pulses berechnet die onboard-Schaltung des Sensors die Distanz mithilfe der Schallgeschwindigkeit (≈343 m/s in Luft).
HC-SR04 Pinout und Funktionalität
- Vcc – 5 V Stromversorgung
- GND – Masse
- TRIG – Triggereingang; ein 10 µs Puls startet eine Messung
- ECHO – 5 V Ausgangspuls, dessen Breite der Echo-Laufzeit entspricht
Der Sensor gibt einen 5-V-Puls an ECHO aus, der von der Erkennung des Echos bis zur Bereitschaft für den nächsten Trigger andauert. Da ein Raspberry Pi GPIO-Pin nur 3,3 V verträgt, müssen wir diese Spannung heruntersetzen.
Spannungsteiler-Schaltung
Ein einfacher Spannungsteiler verwendet zwei Widerstände in Reihe. Mit dem 5-V-ECHO des Sensors als Eingang erzeugt ein 1-kΩ-Widerstand (R1) gefolgt von einem 2-kΩ-Widerstand (R2) einen 3,3-V-Ausgang am Knoten:
Vout = Vin × (R2 / (R1 + R2))
Verbinden Sie den 1-kΩ-Widerstand zwischen der ECHO-Leitung und dem Raspberry Pi GPIO, dann den 2-kΩ-Widerstand von diesem Knoten zur Masse. Dies schützt den Pi und ermöglicht präzise Messung.
Hardware-Verdrahtung (Breadboard-Methode)
Verwenden Sie folgende Raspberry Pi Pins:
Pin 2– 5 VPin 6– GNDPin 16– GPIO 23 (TRIG)Pin 18– GPIO 24 (ECHO)
- Verbinden Sie die HC-SR04 Pins mit dem Breadboard: Rot (Vcc), Blau (TRIG), Gelb (ECHO), Schwarz (GND).
- Verbinden Sie die positive Rail des Breadboards mit dem 5 V des Pi und die negative Rail mit dem GND des Pi.
- Verbinden Sie TRIG mit GPIO 23. Sie können es direkt anschließen oder über eine Breadboard-Rail routen.
- Für die ECHO-Leitung platzieren Sie den 1-kΩ-Widerstand auf der Rail vom
ECHO-Pin des HC-SR04, dann den 2-kΩ-Widerstand zur Masse. Verbinden Sie GPIO 24 mit dem Knoten zwischen den beiden Widerständen. - Überprüfen Sie alle Verbindungen, bevor Sie den Pi mit Strom versorgen.
Python-Code zur Distanzmessung
Das folgende Skript demonstriert, wie man den Sensor triggert und die Echo-Pulsbreite interpretiert, um die Distanz in Zentimetern zu berechnen.
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
TRIG = 23
ECHO = 24
GPIO.setup(TRIG, GPIO.OUT)
GPIO.setup(ECHO, GPIO.IN)
GPIO.output(TRIG, False)
time.sleep(2) # Sensor settle time
while True:
# Trigger: 10 µs High-Puls
GPIO.output(TRIG, True)
time.sleep(0.00001)
GPIO.output(TRIG, False)
# Warten bis Echo High geht
pulse_start = time.time()
while GPIO.input(ECHO) == 0:
pulse_start = time.time()
# Warten bis Echo Low geht
pulse_end = time.time()
while GPIO.input(ECHO) == 1:
pulse_end = time.time()
pulse_duration = pulse_end - pulse_start
distance = pulse_duration * 17150 # Schallgeschwindigkeit in cm/s
print("Distance: %0.2f cm" % distance)
time.sleep(1)
GPIO.cleanup()
Die Ausführung dieses Skripts zeigt Echtzeit-Distanzwerte. Passen Sie die Verzögerung oder das Triggerintervall an Ihre Anwendung an.
Sicherheitstipps
- Verbinden Sie den
ECHO-Pin des HC-SR04 niemals direkt mit einem Pi GPIO ohne Spannungsteiler. - Versorgen Sie Pi und Sensor immer von der gleichen 5-V-Rail, um Spannungsunterschiede zu vermeiden.
- Prüfen Sie das Datenblatt des Sensors auf maximale Betriebstemperatur und empfohlene Last.
Durch Befolgen dieser Schritte erhalten Sie ein robustes Ultraschall-Distanzmesssystem, das sowohl für Ihren Raspberry Pi sicher als auch für eine breite Palette von Robotik- und Automatisierungsprojekten präzise ist.
Herstellungsprozess
- Raspberry Pi Temperaturlogger mit 5 $ I2C Sensor bauen
- Professionelle Temperaturüberwachung mit Raspberry Pi und DS18B20
- Fern-Temperatursensor mit Raspberry Pi & Python bauen – Schritt-für-Schritt-Anleitung
- Raspberry Pi Wetterstation bauen, die tägliche Wetterdaten per E-Mail sendet
- Kompakter DHT Temperatur- & Feuchtigkeits-Breakout für Raspberry Pi – ATtiny85 & DHT22/DHT11
- Sensordaten in Raspberry Pi integrieren: GPS & MPU-9150 Hands-On Guide
- HC-SR04 Ultraschallsensor an Raspberry Pi 3 anschließen – Komplettanleitung
- LED mit PIR-Bewegungsmelder am Raspberry Pi steuern
- Günstiger Raspberry Pi Bodenfeuchtesensor für smarte Bewässerung
- Linearen Hall-Sensor mit Raspberry Pi auslesen: Java-Anleitung & ADC0832 Einblicke