Ich bin noch ein ziemlicher Neuling in Sachen Python 3.5 und Raspberry Pi. Mein erstes wirkliches Projekt ist eine ultraschall Abstandmessung für mein Auto. Im Testbetrieb funktioniert das einwandfrei. Jedoch nach einiger Zeit bleibt die Messung aus und ich muss alles durch einen Reset (Netzstecker ziehen) wieder starten. Das script läuft mittels .bashrc soweit ganz ok. Es läuft nach dem Starten des PI (Raspberry Pi zero) und macht was es soll. Leider wie gesagt stoppt es nach einiger Zeit und ich weiß nicht warum. Den Pi habe ich schon ersetzt (Raspberry Pi 3+) also es scheint nicht am Pi selbst zu liegen. Im Anhang findet ihr das script. Ich denke es muss am script liegen. Könntet ihr mir bitte weiterhelfen. Im Forum selbst habe ich auf ein solches Problem keinen Hinweis gefunden. Natürlich ist meine Programmiererfahrung praktisch noch nicht vorhanden darum bitte ich um etwas Nachsicht.
Vielen Dank für alle Tipps
leafboy
Code: Alles auswählen
#!/user/bin/python3
#Datei ultraschall.py
import time
import RPi.GPIO as GPIO
# Pin Nummern vom Board
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
# Referenz zu Pin Nummer
trig = 13 #GPIO-pin-nummer
echo = 15
ok = 10
achtung = 8
stop = 7
# Definition von Referenz
GPIO.setup(echo, GPIO.IN)
GPIO.setup(trig, GPIO.OUT)
GPIO.setup(ok, GPIO.OUT)
GPIO.setup(achtung, GPIO.OUT)
GPIO.setup(stop, GPIO.OUT)
while True:
GPIO.output(trig, True)
time.sleep(0.00001) # 10 millisekunden
GPIO.output(trig, False)
while GPIO.input(echo) == 0:
pass
start = time.time()
while GPIO.input(echo) == 1:
pass
ende = time.time()
entfernung = ((ende - start) * 34300) / 2
print("Entfernung: %.f" % entfernung)
time.sleep(1)
# Stop LED ein
if entfernung <= 18:
GPIO.output(ok,False)
GPIO.output(achtung,False)
GPIO.output(stop,True)
# Achtung LED ein
if entfernung >=19 or entfernung >=40:
GPIO.output(stop,False)
GPIO.output(achtung,True)
GPIO.output(ok,True)
# OK LED ein
if entfernung >= 30:
GPIO.output(ok,True)
GPIO.output(achtung,False)
GPIO.output(stop,False)
# Alle LED aus
if entfernung >= 100:
GPIO.output(ok,False)
GPIO.output(achtung,False)
GPIO.output(stop,False)
GPIO.cleanup()