Der Jockel
Ensign
- Registriert
- Nov. 2016
- Beiträge
- 150
Ich will mit zwei HC-SR-04 Ultraschallsensoren und einem Raspi die Entfernung Messen (soll später autonomen Roboter steuern) ich habe mich an diesen Guide gehalten https://tutorials-raspberrypi.de/entfernung-messen-mit-ultraschallsensor-hc-sr04/
Ich will beide Trigger mit nur einem GPIO ansteuern ist das möglich? Und kann ich später dieses programm als Modul in das Programm des Roboters einbinden und dann die Werte d1() und d2() verwenden.
Ich bin jedoch noch blutiger Anfänger und kann das deshalb schwer einschätzen! In dem Fall das man zwei Trigger mit einem Gpio verbinden kann würde mein abgeänderter Code Funktionieren?
Python Code:
Ich will beide Trigger mit nur einem GPIO ansteuern ist das möglich? Und kann ich später dieses programm als Modul in das Programm des Roboters einbinden und dann die Werte d1() und d2() verwenden.
Ich bin jedoch noch blutiger Anfänger und kann das deshalb schwer einschätzen! In dem Fall das man zwei Trigger mit einem Gpio verbinden kann würde mein abgeänderter Code Funktionieren?
Python Code:
PHP:
#Bibliotheken einbinden
import RPi.GPIO as GPIO
import time
#GPIO Modus (BOARD / BCM)
GPIO.setmode(GPIO.BCM)
#GPIO Pins zuweisen
GPIO_TRIGGER = 14
GPIO_ECHO1 = 15
GPIO_ECHO2 = 18
#Richtung der GPIO-Pins festlegen (IN / OUT)
GPIO.setup(GPIO_TRIGGER, GPIO.OUT)
GPIO.setup(GPIO_ECHO1, GPIO.IN)
GPIO.setup(GPIO_ECHO2, GPIO.IN)
def d1() , def d2():
# setze Trigger auf HIGH
GPIO.output(GPIO_TRIGGER, True)
# setze Trigger nach 0.01ms auf LOW
time.sleep(0.00001)
GPIO.output(GPIO_TRIGGER, False)
StartZeit = time.time() #Wieso ist Zeile 26 und 27 notwendig
StopZeit = time.time()
# speichere Startzeit
while GPIO.input(GPIO_ECHO1) == 0:
StartZeit1 = time.time()
while GPIO.input(GPIO_ECHO2) == 0:
StartZeit2 = time.time()
# speichere Ankunftszeit
while GPIO.input(GPIO_ECHO1) == 1:
StopZeit1 = time.time()
while GPIO.input(GPIO_ECHO2) == 1:
StopZeit2 = time.time()
# Zeit Differenz zwischen Start und Ankunft
TimeElapsed1 = StopZeit1 - StartZeit1
TimeElapsed2 = StopZeit2 - StartZeit2
# mit der Schallgeschwindigkeit (34300 cm/s) multiplizieren
# und durch 2 teilen, da hin und zurueck
d1 = (TimeElapsed1 * 34300) / 2
d2 = (TimeElapsed2 * 34300) / 2
return d1 , d2
if __name__ == '__main__':
try:
while True:
a1 = d1()
a2 = d2()
print ("Distanz1 = a1.1f cm Distanz2 = a2.1f cm")
time.sleep(1)
# Beim Abbruch durch STRG+C resetten
except KeyboardInterrupt:
print("Messung vom User gestoppt")
GPIO.cleanup()