Ultraschallsensor misst nur einmal, danach verrent sich Skript in While
Verfasst: Freitag 8. Juli 2022, 07:41
Moin Moin,
Ich möchte gerne einfach nur einen Ultraschallsensor auslesen... Dazu nutze ich den vorgefertigten Skript auf https://tutorials-raspberrypi.com/raspb ... r-hc-sr04/ der aussieht wie folgt:
Wenn ich den Raspberry Pi reboote funktioniert dieses Skript genau ein Mal normal, eine Messung wird durchgeführt und ausgegeben, danach kommt er nicht mehr über die zweite while-schleife drüber. Reset hilft auch nichts, nur ein reboot, und dann auch nur einmal. Mein Sensor ist derselbe wie der auf der Website. Hat jemand eine Idee?
Ich möchte gerne einfach nur einen Ultraschallsensor auslesen... Dazu nutze ich den vorgefertigten Skript auf https://tutorials-raspberrypi.com/raspb ... r-hc-sr04/ der aussieht wie folgt:
Code: Alles auswählen
#Libraries
import RPi.GPIO as GPIO
import time
#GPIO Mode (BOARD / BCM)
GPIO.setmode(GPIO.BCM)
#set GPIO Pins
GPIO_TRIGGER = 18
GPIO_ECHO = 24
#set GPIO direction (IN / OUT)
GPIO.setup(GPIO_TRIGGER, GPIO.OUT)
GPIO.setup(GPIO_ECHO, GPIO.IN)
def distance():
# set Trigger to HIGH
GPIO.output(GPIO_TRIGGER, True)
# set Trigger after 0.01ms to LOW
time.sleep(0.00001)
GPIO.output(GPIO_TRIGGER, False)
StartTime = time.time()
StopTime = time.time()
# save StartTime
while GPIO.input(GPIO_ECHO) == 0:
StartTime = time.time()
# save time of arrival
while GPIO.input(GPIO_ECHO) == 1:
StopTime = time.time()
# time difference between start and arrival
TimeElapsed = StopTime - StartTime
# multiply with the sonic speed (34300 cm/s)
# and divide by 2, because there and back
distance = (TimeElapsed * 34300) / 2
return distance
if __name__ == '__main__':
try:
while True:
dist = distance()
print ("Measured Distance = %.1f cm" % dist)
time.sleep(1)
# Reset by pressing CTRL + C
except KeyboardInterrupt:
print("Measurement stopped by User")
GPIO.cleanup()