Hallo zusammen,
ich muss mich mal wieder mit einer Frage melden. Ich habe hier einen HC-SR04 Ultraschall Sensor, korrekt mit dem Pi verbunden
Ich habe aus Faulheit keinen eigenen Code genommen, sondern eines der 1000 im Web verfügbaren Beispiele (mit RPi.GPIO) ge'copy-pasted' und es klappte perfekt. Der Code:
[code=php]import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO_TRIGGER = 20
GPIO_ECHO = 21
GPIO.setup(GPIO_TRIGGER, GPIO.OUT)
GPIO.setup(GPIO_ECHO, GPIO.IN)
def distanz():
GPIO.output(GPIO_TRIGGER, True)
time.sleep(0.00001)
GPIO.output(GPIO_TRIGGER, False)
StartZeit = time.time()
StopZeit = time.time()
while GPIO.input(GPIO_ECHO) == 0:
StartZeit = time.time()
while GPIO.input(GPIO_ECHO) == 1:
StopZeit = time.time()
TimeElapsed = StopZeit - StartZeit
distanz = (TimeElapsed * 34300) / 2
return distanz
if __name__ == '__main__':
try:
while True:
abstand = distanz()
print ("Gemessene Entfernung = %.1f cm" % abstand)
time.sleep(1)
except KeyboardInterrupt:
print("Messung vom User gestoppt")
GPIO.cleanup()
[/php]
Da ich allerdings belehrt wurde, dass RPi.GPIO vergleichsweise Mist ist, nutze ich mittlerweile pigpio mit Python. Ich habe den Code umgeschrieben und dabei (hoffentlich ) 1:1 die Funktionen zu pigpio umgeschrieben: klappt nicht. Es bleibt in der ersten while Schleife hängen =(
Code:
[code=php]import pigpio
import time
pi = pigpio.pi()
GPIO_TRIGGER = 20
GPIO_ECHO = 21
pi.write(GPIO_TRIGGER, pigpio.OUTPUT)
pi.write(GPIO_ECHO, pigpio.INPUT)
def distanz():
pi.write(GPIO_TRIGGER, pigpio.HIGH)
time.sleep(0.00001)
pi.write(GPIO_TRIGGER, pigpio.LOW)
StartZeit = time.time()
StopZeit = time.time()
# Hier bleibt es hängen
while pi.read(GPIO_ECHO) == 0:
StartZeit = time.time()
while pi.read(GPIO_ECHO) == 1:
StopZeit = time.time()
TimeElapsed = StopZeit - StartZeit
distanz = (TimeElapsed * 34300) / 2
return distanz
if __name__ == '__main__':
try:
while True:
abstand = distanz()
print ("Gemessene Entfernung = %.1f cm" % abstand)
time.sleep(1)
except KeyboardInterrupt:
print("Messung vom User gestoppt")
pi.stop()
[/php]
Sieht irgendwer einen Fehler? Was bitte mache ich falsch?
Danke an alle, die einen Blick drauf werfen oder mir Tipps geben können!
EDIT: Das: http://www.mikronauts.com/wp-content/upl…/12/hc-sr04.txt gibt dauerhaft 0.0 aus, das: http://abyz.co.uk/rpi/pigpio/code/sonar_trigger_echo_py.zip hängt ebenfalls. RPi.GPIO geht nach wie vor...
LG