Een HC-SR04 ultrasone sensor verbinden met een Raspberry Pi – Een praktische gids
In eerdere projecten behandelden we temperatuursensoren, PIR-bewegingsmodules en basis GPIO-interfacing. De HC-SR04 ultrasone afstandssensor is een populaire keuze voor afstandmeting, maar zijn 5 V-uitgang moet worden teruggebracht naar 3,3 V om de GPIO-pinnen van de Raspberry Pi te beschermen. Deze tutorial leidt je door de natuurkunde, elektronica en Python-code die nodig zijn om de sensor veilig te verbinden en te gebruiken.
Wat je nodig hebt
- HC-SR04 ultrasone sensor
- 1 kΩ-weerstand
- 2 kΩ-weerstand
- Jumper-draden (male-to-female)
- Optioneel: breadboard
Hoe ultrasone sensoren werken
Geluid voortplant zich als drukgolven; de toonhoogte wordt bepaald door de frequentie van deze golven. Ultrasone sensoren zenden hoogfrequent geluid uit dat voor onhoorbaar is voor mensen, weerkaatsen op nabijgelegen objecten en vangen vervolgens het echo op. Door de heen-en-weer-tijd van de puls te meten, berekent de onboard-circuit van de sensor de afstand met behulp van de geluidssnelheid (≈343 m/s in lucht).
HC-SR04 pinout en functionaliteit
- Vcc – 5 V voeding
- GND – massa
- TRIG – trigger-invoer; een puls van 10 µs initieert een meting
- ECHO – 5 V-uitgangspuls wiens breedte gelijk is aan de echo-reistijd
De sensor geeft een 5 V-puls op ECHO die duurt van het moment dat het echo wordt gedetecteerd tot de sensor klaar is voor de volgende trigger. Omdat een Raspberry Pi GPIO-pin slechts 3,3 V aankan, moeten we deze spanning verlagen.
Spanningsdeler-circuit
Een simpele spanningsdeler gebruikt twee weerstanden in serie. Met de 5 V ECHO van de sensor als invoer, levert een 1 kΩ-weerstand (R1) gevolgd door een 2 kΩ-weerstand (R2) een uitgang van 3,3 V op het knooppunt:
Vout = Vin × (R2 / (R1 + R2))
Plaats de 1 kΩ-weerstand tussen de ECHO-lijn en de Raspberry Pi GPIO, en verbind de 2 kΩ-weerstand van dat knooppunt naar massa. Dit houdt de Pi veilig en staat nauwkeurige meting toe.
Hardware-aansluiting (breadboard-methode)
Gebruik de volgende Raspberry Pi-pinnen:
Pin 2– 5 VPin 6– GNDPin 16– GPIO 23 (TRIG)Pin 18– GPIO 24 (ECHO)
- Verbind de HC-SR04-pinnen met het breadboard: Rood (Vcc), Blauw (TRIG), Geel (ECHO), Zwart (GND).
- Koppel de positieve rail van het breadboard aan de 5 V van de Pi en de negatieve rail aan de GND van de Pi.
- Verbind TRIG met GPIO 23. Je kunt dit direct doen of via een breadboard-rail.
- Voor de ECHO-lijn, plaats de 1 kΩ-weerstand op de rail vanaf de
ECHO-pin van de HC-SR04, voeg daarna de 2 kΩ-weerstand naar massa toe. Verbind GPIO 24 met het knooppunt tussen de twee weerstanden. - Controleer alle verbindingen voordat je de Pi aansluit.
Python-code om de afstand uit te lezen
Het onderstaande script laat zien hoe je de sensor triggerd en de echo-pulsbreedte interpreteert om de afstand in centimeters te berekenen.
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) # Laat sensor rusten
while True:
# Trigger de sensor: 10 µs hoge puls
GPIO.output(TRIG, True)
time.sleep(0,00001)
GPIO.output(TRIG, False)
# Wacht tot echo hoog gaat
pulse_start = time.time()
while GPIO.input(ECHO) == 0:
pulse_start = time.time()
# Wacht tot echo laag gaat
pulse_end = time.time()
while GPIO.input(ECHO) == 1:
pulse_end = time.time()
pulse_duration = pulse_end - pulse_start
distance = pulse_duration * 17150 # Geluidssnelheid in cm/s
print("Afstand: %0.2f cm" % distance)
time.sleep(1)
GPIO.cleanup()
Door dit script uit te voeren, krijg je realtime afstandsmetingen. Pas de vertraging of trigger-interval aan voor jouw toepassing.
Veiligheidstips
- Verbind de
ECHO-pin van de HC-SR04 nooit direct met een Pi GPIO zonder spanningsdeler. - Voed de Pi en sensor altijd vanuit dezelfde 5 V-rail om spanningmismatch te voorkomen.
- Controleer de datasheet van de sensor voor maximale bedrijfstemperatuur en aanbevolen belasting.
Door deze stappen te volgen, heb je een robuust ultrasone afstandmeetsysteem dat zowel veilig is voor je Raspberry Pi als nauwkeurig voor een breed scala aan robotica- en automatiseringsprojecten.
Productieproces
- Bouw Een Raspberry Pi Temperatuur Logger Met Een $5 I2C Sensor
- Professionele temperatuurbewaking met Raspberry Pi en DS18B20
- Een externe temperatuursensor bouwen met Raspberry Pi en Python – Stap-voor-stap handleiding
- Een Raspberry Pi-weerstation bouwen dat dagelijkse weergegevens e-mailt
- Compacte DHT temperatuur- en vochtigheidsbreakout voor Raspberry Pi – ATtiny85 & DHT22/DHT11
- Sensordata integreren in een Raspberry Pi: Een praktische gids
- HC-SR04 ultrasoon-sensor aansluiten op Raspberry Pi 3 – Complete gids
- Een LED Besturen met een PIR-bewegingssensor op Raspberry Pi
- Een Goedkope Raspberry Pi Grondvochtigheidssensor Bouwen voor Slimme Irrigatie
- Een Lineaire Hall-sensor Uitlezen met Raspberry Pi: Java-handleiding & ADC0832-inzichten
- Een Multi-sensor Temperatuur- & Lichtmonitoringssysteem Bouwen met Raspberry Pi & DS18B20