Instructions
83
Zwei Variablen legen zwei Werte im Programm fest: die Anzahl der Wiederholungen
w eines Musters sowie
die Blinkzeit
t. Beide Werte könnten auch bei jedem Vorkommen im Programm fest eingetragen werden. Auf
diese Weise lassen sie sich aber leichter anpassen, da sie nur an einer Stelle definiert sind.
muster = [
("Lauflicht nach links",1), ("Blinken",2), ("Lauflicht nach rechts",3)
]
Die Texte der drei Muster, die zur Auswahl stehen, werden in einer besonderen Listenform definiert. Jedes
der drei Listenelemente besteht aus einem Wertepaar, jeweils bestehend aus dem angezeigten Text und
einem Zahlenwert, der später bei der Auswahl des jeweiligen Radiobuttons zurückgegeben werden soll.
root = Tk(); root.title("LED")
Die Initialisierung des root-Widgets entspricht wieder dem vorherigen Programm, nur die Inhalte des Dialog-
felds unterscheiden sich.
v = IntVar(); v.set(1)
Variablen, die in Tk-Dialogfeldern genutzt werden, müssen im Gegensatz zu normalen Python-Variablen vor
der ersten Verwendung deklariert werden. Diese beiden Zeilen deklarieren eine Variable
v als Integer und
setzen sie am Anfang auf den Wert
1.
def LedEin():
e = v.get()
Jetzt wird wieder eine Funktion definiert, die wie im letzten Beispiel LedEin() heißt, diesmal aber nicht nur
eine LED einschaltet, sondern ein LED-Muster startet. Die zweite Funktion
LedAus() aus dem letzten Beispiel
wird hier nicht benötigt. Die erste Zeile der neuen Funktion liest die Benutzereingabe aus der Tk-Variablen
v
und schreibt den Wert in die Python-Variable
e. Wie der Wert genau in die Variable v gelangt, erfahren Sie
weiter unten bei der Erklärung der Radiobuttons.
Abhängig von der Benutzerauswahl werden drei verschiedene Programmschleifen gestartet:
if e == 1:
for i in range(w):
for j in range(4):
GPIO.output(LED[j], True); time.sleep(t)
GPIO.output(LED[j], False)
Im ersten Fall läuft eine Schleife fünfmal durch, die nacheinander jede der vier LEDs einschaltet, 0,2 Sekun-
den leuchten lässt und wieder ausschaltet. Die fünf Wiederholungen und die 0,2 Sekunden Blinkzeit sind
über die Variablen
w und t am Anfang des Programms definiert.