Instructions
36
time.sleep(2)
GPIO.output(Ampel[gruen],False); GPIO.output(Ampel[gelb],True)
time.sleep(0.6)
GPIO.output(Ampel[gelb],False); GPIO.output(Ampel[rot],True)
time.sleep(0.6)
for i in range(10):
GPIO.output(Ampel[blau],True); time.sleep(0.05)
GPIO.output(Ampel[blau],False); time.sleep(0.05)
time.sleep(0.6)
GPIO.output(Ampel[gelb],True); time.sleep(0.6)
GPIO.output(Ampel[rot],False)
GPIO.output(Ampel[gelb],False)
GPIO.output(Ampel[gruen],True)
except KeyboardInterrupt:
GPIO.cleanup()
4.1.1 So funktioniert es
Der Programmablauf ist weitgehend bekannt. Während der jetzt etwas längeren Rotphase soll die blaue Fuß-
gängerampel schnell blinken.
blau = 4 Eine neue Variable definiert die LED für die Fußgängerampel in der Liste.
Ampel=[4,18,23,24] Die Liste wird auf vier Elemente vergrößert, um die vier LEDs ansteuern zu können.
GPIO.setup(Ampel[blau], GPIO.OUT, initial=False) Die neue LED wird initialisiert und anfangs ausge-
schaltet. Dies ist die Grundeinstellung während der Grünphase der Verkehrsampel.
time.sleep(0.6)
for i in range(10):
GPIO.output(Ampel[blau],True); time.sleep(0.05)
GPIO.output(Ampel[blau],False); time.sleep(0.05)
time.sleep(0.6)
Im Ampelzyklus startet 0,6 Sekunden nach Beginn der Rotphase eine Schleife, die die blaue LED blinken
lässt. Dazu verwenden wir hier eine
for-Schleife, die im Gegensatz zu den in den früheren Experimenten
verwendeten
while-Schleifen immer eine bestimmte Anzahl an Schleifendurchläufen verwendet und nicht
läuft, bis eine bestimmte Abbruchbedingung erfüllt ist.
for i in range(10): Jede for-Schleife benötigt einen Schleifenzähler, eine Variable, die bei jedem
Schleifendurchlauf einen neuen Wert annimmt. Für einfache Schleifenzähler hat sich in allen Programmier-
sprachen der Variablenname
i eingebürgert. Jeder andere Name ist natürlich auch möglich. Dieser Wert
kann wie jede andere Variable innerhalb der Schleife abgefragt werden, was hier aber nicht nötig ist. Der
Parameter
range in der Schleife gibt an, wie oft die Schleife durchläuft, genauer gesagt, welche Werte der
Schleifenzähler annehmen kann. In unserem Beispiel läuft die Schleife zehnmal. Der Schleifenzähler
i
bekommt dabei Werte von
0 bis 9. Innerhalb der Schleife wird die neue blaue LED eingeschaltet und nach
0,05 Sekunden wieder ausgeschaltet. Nach weiteren 0,05 Sekunden ist ein Schleifendurchlauf zu Ende, und
der nächste startet wieder mit dem Einschalten der LED. Auf diese Weise blinkt sie zehnmal, was insgesamt
1 Sekunde dauert.