FREE SHIPPING ON ALL ORDERS OVER £20

60 DAY HASSLE-FREE RETURNS

Gebruik de HC-SR04 met de Raspberry Pi

Using the HC-SR04 With the Raspberry Pi

De HC-SR04 ultrasone sensor is een populair en kosteneffectief hulpmiddel voor het meten van afstanden in diverse doe-het-zelf- en professionele projecten. In combinatie met een Raspberry Pi opent het een wereld aan mogelijkheden voor het creëren van toepassingen zoals obstakeldetectie, niveaumeting en zelfs interactieve installaties. Deze blogpost leidt je door het proces van het instellen en gebruiken van de HC-SR04 sensor met je Raspberry Pi.

Wat is de HC-SR04 ultrasone sensor?

De HC-SR04 is een ultrasone sensormodule die afstand meet door ultrasone golven uit te zenden en de tijd te berekenen die het echo-signaal nodig heeft om terug te keren. Hij werkt op 5V en staat bekend om zijn nauwkeurigheid en betrouwbaarheid bij afstandsmetingen op korte tot middellange afstand, doorgaans tussen 2 cm en 400 cm.

Benodigde onderdelen

  • Raspberry Pi (elk model met GPIO-pinnen, zoals Raspberry Pi 4)
  • HC-SR04 ultrasone sensor
  • Jumperkabels
  • Breadboard
  • 10kΩ, 20kΩ weerstand (voor spanningsdeling)
  • Optioneel: LED en weerstand voor visuele feedback

De HC-SR04 aansluiten op de Raspberry Pi

Het aansluiten van de HC-SR04 op de Raspberry Pi vereist zorgvuldige afhandeling, vooral omdat de GPIO-pinnen van de Raspberry Pi op 3,3V werken en de HC-SR04 op 5V. Om schade aan je Pi te voorkomen, is het essentieel om een spanningsdeler te gebruiken op de Echo-pin.

Pinaansluitingen

  • VCC van HC-SR04 naar 5V pin op Raspberry Pi
  • GND van HC-SR04 naar GND op Raspberry Pi
  • Trig pin van HC-SR04 naar een GPIO-pin op Raspberry Pi (bijv. GPIO23)
  • Echo pin van HC-SR04 naar Raspberry Pi via een spanningsdeler

De spanningsdeler instellen

Om de Echo-pin veilig aan te sluiten op de Raspberry Pi, gebruik je een spanningsdeler met een 10kΩ weerstand en een 20kΩ weerstand. Hiermee wordt het 5V-signaal verlaagd naar ongeveer 3,3V.


# Voorbeeld van een schema voor een spanningsdeler
# HC-SR04 Echo-pin ---- 10kΩ ----> Raspberry Pi GPIO (Echo)
#                             |
#                           20kΩ
#                             |
#                           GND

Benodigde bibliotheken installeren

Voordat je de code schrijft, moet je ervoor zorgen dat je Raspberry Pi up-to-date is en de benodigde bibliotheken zijn geïnstalleerd.


sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python3-rpi.gpio

Het Python-script schrijven

Hieronder staat een eenvoudig Python-script om te communiceren met de HC-SR04 sensor. Dit script stuurt een trigger-puls, wacht op de echo en berekent de afstand op basis van de tijd die nodig is voor de terugkeer van de echo.


import RPi.GPIO as GPIO
import time

# GPIO-modus (BOARD / BCM)
GPIO.setmode(GPIO.BCM)

# GPIO-pinnen instellen
TRIG = 23
ECHO = 24

print("Afstandsmeting bezig")

# GPIO-richting instellen (IN / OUT)
GPIO.setup(TRIG, GPIO.OUT)
GPIO.setup(ECHO, GPIO.IN)

def distance():
    # TRIG op LAAG zetten
    GPIO.output(TRIG, False)
    time.sleep(2)

    # 10us puls naar TRIG sturen
    GPIO.output(TRIG, True)
    time.sleep(0.00001)
    GPIO.output(TRIG, False)

    start_time = time.time()
    stop_time = time.time()

    # Starttijd opslaan
    while GPIO.input(ECHO) == 0:
        start_time = time.time()

    # Aankomsttijd opslaan
    while GPIO.input(ECHO) == 1:
        stop_time = time.time()

    # Tijdsverschil tussen start en aankomst
    time_elapsed = stop_time - start_time
    # Vermenigvuldigen met de geluidssnelheid (34300 cm/s)
    # en delen door 2, omdat het heen en terug is
    distance = (time_elapsed * 34300) / 2

    return distance

if __name__ == '__main__':
    try:
        while True:
            dist = distance()
            print("Gemeten afstand = %.1f cm" % dist)
            time.sleep(1)
    except KeyboardInterrupt:
        print("Meting gestopt door gebruiker")
        GPIO.cleanup()

Het script uitvoeren

Zorg ervoor dat je bedrading correct is en voer vervolgens het script uit met Python 3:


python3 hc-sr04.py

Je zou de gemeten afstand in centimeters in de console moeten zien verschijnen. Als je een LED gebruikt voor visuele feedback, kun je het script aanpassen om de LED te laten branden wanneer een object zich binnen een bepaald bereik bevindt.

Je project uitbreiden

Zodra de basisafstandsmetingen werken, kun je overwegen om extra functies toe te voegen:

  • LED-indicatoren: Gebruik LED's om verschillende afstandsbereiken aan te geven.
  • LCD-scherm: Toon de afstand op een LCD-scherm.
  • Dataregistratie: Registreer afstandsmetingen in de loop van de tijd voor analyse.
  • Waarschuwingssystemen: Activeer alarmen of meldingen wanneer objecten te dichtbij komen.

Veelvoorkomende problemen oplossen

Werken met sensoren en GPIO kan soms uitdagend zijn. Hier zijn enkele veelvoorkomende problemen en hoe je ze kunt aanpakken:

  • Onjuiste bedrading: Controleer alle verbindingen dubbel, vooral de spanningsdeler op de Echo-pin.
  • Ruis in metingen: Zorg dat je opstelling stabiel is en overweeg condensatoren toe te voegen om ruis te filteren.
  • GPIO-conflicten: Zorg ervoor dat geen andere scripts of services dezelfde GPIO-pinnen gebruiken.
  • Rechten: Voer je scripts uit met de juiste rechten, gebruik indien nodig sudo.

Conclusie

De HC-SR04 ultrasone sensor is een veelzijdige en betrouwbare component die, in combinatie met de Raspberry Pi, kan dienen voor een veelvoud aan toepassingen, van eenvoudige afstandsmeting tot complexe automatiseringssystemen. Door de stappen in deze handleiding te volgen, zou je in staat moeten zijn om de HC-SR04 in te stellen en ermee te experimenteren op je Raspberry Pi. Veel knutselplezier!

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.

Laat een reactie achter