Ultraschallsensor steuert LED
Verfasst: Freitag 26. Januar 2018, 19:14
Hallo zusammen.
Vor ca. 2 Monaten habe ich mir einen Raspberry Pi zugelegt und habe schon einige Versuche mit Temperaturfühler, LCD etc. durchgeführt. Es hat mich immer schon brennend interessiert Elektronik mit Software zu kombinieren und die Möglichkeiten sind wirklich unendlich.
Mit der Zeit wünscht man sich aber ein konkretes Projekt und da habe ich mir einen Abstandswarner für meine Garage ausgewählt. Mit einem Ultraschallsensor und ein paar LED überwache ich den Abstand meines Autos von der Wand. Je nach Abstand leuchten drei LED (ok - Achtung - stopp) Nun funktioniert alles soweit ganz ok nur möchte ich, wenn ich den Stoppunkt erreicht habe, dass die LED auch löscht. Leider funktioniert mein Code nicht wie ich es möchte. Könnte nicht jemand mal einen Blick darauf werfen und mir einen Tipp geben. Meinen Code kopiere ich hier einmal hinein. Ich weiß leider nicht was euch noch für eine Lösung an Infos fehlen. Seid bitte nachsichtig mit einem Greenhorn das aber bereit ist zu lernen.
Vielen Dank im Voraus für eure Gedanken
leafboy
Code:
#!/user/bin/python3
#Datei ultraschall-abstand-led.py
import time
import RPi.GPIO as GPIO
# Pin Nummern vom Board
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
# Referenz zu Pin Nummer
trig = 29 #GPIO-pin-nummer
echo = 31
ok = 36
achtung = 38
stop = 32
# 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)
# Ultraschall Sensor
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
# Entfernung ausgeben - Kontrolle ob Messung laeuft
print("Entfernung: %.f" % entfernung)
time.sleep(1)
# Anzeige Abstand erreicht Achtung
if entfernung <= 15:
GPIO.output(ok,False)
GPIO.output(achtung,False)
GPIO.output(stop,True)
# Anzeige Abstand erreicht Stopp
if entfernung <= 9:
GPIO.output(ok,True)
GPIO.output(achtung,True)
GPIO.output(stop,False)
# Anzeige System ok
if entfernung >= 16:
GPIO.output(ok,False)
GPIO.output(achtung,True)
GPIO.output(stop,True)
# Anzeige alle LED aus
if entfernung >= 20:
GPIO.output(ok,True)
GPIO.output(achtung,True)
GPIO.output(stop,True)
GPIO.cleanup()
Vor ca. 2 Monaten habe ich mir einen Raspberry Pi zugelegt und habe schon einige Versuche mit Temperaturfühler, LCD etc. durchgeführt. Es hat mich immer schon brennend interessiert Elektronik mit Software zu kombinieren und die Möglichkeiten sind wirklich unendlich.
Mit der Zeit wünscht man sich aber ein konkretes Projekt und da habe ich mir einen Abstandswarner für meine Garage ausgewählt. Mit einem Ultraschallsensor und ein paar LED überwache ich den Abstand meines Autos von der Wand. Je nach Abstand leuchten drei LED (ok - Achtung - stopp) Nun funktioniert alles soweit ganz ok nur möchte ich, wenn ich den Stoppunkt erreicht habe, dass die LED auch löscht. Leider funktioniert mein Code nicht wie ich es möchte. Könnte nicht jemand mal einen Blick darauf werfen und mir einen Tipp geben. Meinen Code kopiere ich hier einmal hinein. Ich weiß leider nicht was euch noch für eine Lösung an Infos fehlen. Seid bitte nachsichtig mit einem Greenhorn das aber bereit ist zu lernen.
Vielen Dank im Voraus für eure Gedanken
leafboy
Code:
#!/user/bin/python3
#Datei ultraschall-abstand-led.py
import time
import RPi.GPIO as GPIO
# Pin Nummern vom Board
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
# Referenz zu Pin Nummer
trig = 29 #GPIO-pin-nummer
echo = 31
ok = 36
achtung = 38
stop = 32
# 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)
# Ultraschall Sensor
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
# Entfernung ausgeben - Kontrolle ob Messung laeuft
print("Entfernung: %.f" % entfernung)
time.sleep(1)
# Anzeige Abstand erreicht Achtung
if entfernung <= 15:
GPIO.output(ok,False)
GPIO.output(achtung,False)
GPIO.output(stop,True)
# Anzeige Abstand erreicht Stopp
if entfernung <= 9:
GPIO.output(ok,True)
GPIO.output(achtung,True)
GPIO.output(stop,False)
# Anzeige System ok
if entfernung >= 16:
GPIO.output(ok,False)
GPIO.output(achtung,True)
GPIO.output(stop,True)
# Anzeige alle LED aus
if entfernung >= 20:
GPIO.output(ok,True)
GPIO.output(achtung,True)
GPIO.output(stop,True)
GPIO.cleanup()