Top

HC-SR04

Das HC-SR04 zur Abstandsmessung hat einem Erfassungsbereich von 3cm bis 4m.

HC-SR04

Das Modul besitzt vier Pins, Vcc (Versorgungsspannung), GND (GROUND), Trig und Echo.
Zusammen mit einem 330Ω und 470Ω Widerstand wird es entsprechend mit dem Raspberry Pi verkabelt.
Der 330Ω Widerstand wird zwischen Echo und dem GPIO Pin angeschlossen, der 470Ω Widerstand wird zwischen dem GPIO Pin und GROUND angeschlossen.

HC-SR04 RASPBERRY PI
Vcc Pin 2 – 5 V
Trig Pin 16 – GPIO 23
Echo Pin 17 – GPIO 24
GND Pin 6 – GROUND

HC-SR04

Das Modul sendet ein Ultraschall Signal und empfängt es anschliessend wieder. Mit Trig und Echo führt man eine Messung durch, Trig startet die Messung und Echo liefert einen Impulse zurück, aus der Impulsedauer kann man dann die Entfernung berechnen.

Die Entfernung kann man sich ausgeben lassen. Man kann sie auch dazu nutzen eine Entscheidung zu treffen wenn die Entfernung größer oder kleiner als erwartet ist.

Mit einem Python Skript kann man sich den Abstand ausgeben lassen.

import time
import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BCM)

GPIO_TRIGGER = 23
GPIO_ECHO = 24

GPIO.setup(GPIO_TRIGGER, GPIO.OUT)
GPIO.setup(GPIO_ECHO, GPIO.IN)

def get_distance(trigger, echo):
    """ calculates and returns distance """
    GPIO.output(trigger, True)
    time.sleep(0.00001)
    GPIO.output(trigger, False)

    start_time = time.time()
    while GPIO.input(echo) == 0:
        start_time = time.time()
    while GPIO.input(echo) == 1:
        end_time = time.time()

    delta_time = end_time - start_time
    distance = (delta_time * 34300) / 2
    return distance

try:
    while True:
        distance = get_distance(GPIO_TRIGGER, GPIO_ECHO)
        print("Distance: %.1f cm" % distance)
        time.sleep(1)
except KeyboardInterrupt:
    print("Bye...")
    GPIO.cleanup()