Hallo zusammen,
habe ein Python Script mit meinen bescheidenen, quasi nicht vorhandenen, Programmierkenntnissen erstellt. Es gibt bestimmt noch einiges an Verbesserungspotenzial und bin auch Dankbar für Vorschläge.
Was ich damit mit dem Script erreichen möchte ist folgendes:
An einem Taster sind drei LED´s angebracht. Drückt man nun den Taster leuchtet zuerst die Rote LED, danach die Gelbe LED und zuletzt die Grüne LED. Danach leuchten alle drei LED´s auf gehen danach aus und das Script startet erneut. Jetzt möchte ich, je nachdem welche LED leuchtet, ein Script (A,B,C) starten (habe zuvor die drei Unterschiedliche Scripte im Ordner /home/pi erstellt). Durch das loslassen des Tasters wird eines der drei Scripte ausgewählt und gestartet, die leuchtende LED geht dann aus. In diesem Script arbeite ich mit einem Zähler, dieser 8 Schritte macht. Hier die Schritte aufgegliedert:
Schritt 1 + 2 --> Rote LED leuchtet und Script A wird gestartet
Schritt 3 + 4 --> Gelbe LED leuchtet und Script B wird gestartet
Schritt 5 + 6 --> Grüne LED leuchtet und Script C wird gestartet
Schritt 7 Alle drei LED´s leuchten oder gehen aus (je nach Tastendruck)
Schritt 8 Alle drei LED´s sind aus
Wie schon gesagt, für Hilfe, Info´s oder Verbesserungen bin ich dankbar. Das Programm läuft und mein Raspberry ist auch, zum Glück, noch nicht abgeraucht.
Dieser Post dient als Lernmittel für mich. Wenn ich jemand damit eine Idee oder Hilfestellung geben kann finde ich das gut, aber ich kann nicht garantieren das alles korrekt ist, was ich hier erstellt habe.
Hier das erstellt Script:
#!/usr/bin/python
import RPi.GPIO as GPIO
import time
import subprocess
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(13, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
GPIO.setup(18, GPIO.OUT)
GPIO.setup(36, GPIO.OUT)
GPIO.setup(38, GPIO.OUT)
while True:
global n
n = 8
global count
count = 0
for count in range(0,n):
if (GPIO.input(13)):
count = count + 1
time.sleep(1)
# Zählerstand = 1
if (count == 1 and GPIO.input(13) == 1):
GPIO.output(36, True)
print "LED Rot"
elif (count == 1 and GPIO.input(13) == 0):
GPIO.output(36, False)
subprocess.call("/home/pi/./XXXXXXXX1.XX")
print "LED Rot"
# Zählerstand = 2
elif (count == 2 and GPIO.input(13) == 1):
print "LED Rot"
elif (count == 2 and GPIO.input(13) == 0):
GPIO.output(36, False)
subprocess.call("/home/pi/./XXXXXXXX1.XX")
print "LED Rot"
# Zählerstand = 3
elif (count == 3 and GPIO.input(13) == 1):
GPIO.output(36, False)
GPIO.output(38, True)
print "LED Gelb"
elif (count == 3 and GPIO.input(13) == 0):
GPIO.output(38, False)
subprocess.call("/home/pi/./XXXXXXXX2.XX")
print "LED Gelb"
# Zählerstand = 4
elif (count == 4 and GPIO.input(13) == 1):
print "LED Gelb"
elif (count == 4 and GPIO.input(13) == 0):
GPIO.output(38, False)
subprocess.call("/home/pi/./XXXXXXXX2.XX")
print "LED Gelb"
# Zählerstand = 5
elif (count == 5 and GPIO.input(13) == 1):
GPIO.output(38, False)
GPIO.output(18, True)
print "LED Gruen"
elif (count == 5 and GPIO.input(13) == 0):
GPIO.output(18, False)
subprocess.call("/home/pi/./XXXXXXXX3.XX")
print "LED Gruen"
# Zählerstand = 6
elif (count == 6 and GPIO.input(13) == 1):
print "LED Gruen"
elif (count == 6 and GPIO.input(13) == 0):
GPIO.output(18, False)
subprocess.call("/home/pi/./XXXXXXXX3.XX")
print "LED Gruen"
# Zählerstand = 7
elif (count == 7 and GPIO.input(13) == 1):
GPIO.output(18, True)
GPIO.output(36, True)
GPIO.output(38, True)
print "Alle LED an"
elif (count == 7 and GPIO.input(13) == 0):
GPIO.output(18, False)
GPIO.output(36, False)
GPIO.output(38, False)
# Zählerstand = 8
elif (count == 8 and GPIO.input(13) == 1):
GPIO.output(18, False)
GPIO.output(36, False)
GPIO.output(38, False)
print "Alle LED aus"
count = 0
time.sleep(1)
Alles anzeigen
Mit freundlichem Gruß
Und hier noch die Skizze vom Aufbau und Anschluss: