Instructions

50
Die erste innere Schleife schaltet die LEDs nacheinander mit einer Zeitverzögerung ein. Am Ende der Schleife,
das an der Ausrückung der Zeile
time.sleep(2*t) zu erkennen ist, wird die doppelte Verzögerungszeit
gewartet. So lange leuchten alle LEDs. Danach beginnt eine weitere Schleife, die rückwärts zählt und eine
LED nach der anderen wieder ausschaltet. Auch hier wird am Ende, wenn alle LEDs aus sind, die doppelte
Verzögerungszeit gewartet, bevor die äußere Schleife den gesamten Zyklus noch einmal startet.
Muster 4
Hat der Benutzer eine 4 eingegeben, startet ein anderes Blinkmuster, bei dem alle LEDs gleichzeitig blinken
und nicht nacheinander aufgerufen werden.
elif e == "4":
for i in range(w):
for j in range(z):
GPIO.output(LED[j], True)
time.sleep(2*t)
for j in range(z):
GPIO.output(LED[j], False)
time.sleep(t)
Da nicht mehrere GPIO-Ports mit einer einzigen Anweisung auf einmal ein- oder ausgeschaltet werden
können, werden auch hier Schleifen verwendet, allerdings ohne Zeitverzögerung innerhalb der Schleife. Die
vier LEDs werden unmittelbar nacheinander eingeschaltet. Für das menschliche Auge erscheint es gleichzei-
tig. Am Ende der ersten inneren Schleife wartet das Programm die doppelte Verzögerungszeit, bevor alle LEDs
wieder ausgeschaltet werden.
Durch unterschiedliche Leucht- und Dunkelzeiten lassen sich verschiedene Effekte bei Blinklichtern erzeugen.
Blinken wird eher wahrgenommen, wenn die Leuchtzeit länger als die Dunkelzeit ist. Sehr kurze Leuchtzeiten
bei vergleichsweise langen Dunkelzeiten erzeugen einen Blitzlichteffekt.
Muster 5
Hat der Benutzer eine 5 eingegeben, blinken die LEDs völlig zufällig.
elif e == "5":
for i in range(w*z):
j = random.randint(0,z-1)
GPIO.output(LED[j], True); time.sleep(t)
GPIO.output(LED[j], False)
Da hier keine verschachtelten Schleifen verwendet werden, lassen wir die Schleife öfter durchlaufen. Durch
Multiplikation der Variablen
w und z blinkt jede LED durchschnittlich so oft wie im ersten Muster.
Die Funktion
random.randint() schreibt eine Zufallszahl in die Variable j. Diese Zufallszahl ist größer oder
gleich dem ersten Parameter und kleiner oder gleich dem zweiten Parameter, kann also in unserem Fall die
Werte
0, 1, 2, 3 annehmen.
Die per Zufall ausgewählte LED wird ein- und nach der Verzögerungszeit wieder ausgeschaltet. Danach startet
die Schleife neu, und eine neue LED wird per Zufall ausgewählt.