Instructions
29
Di
e
G
PI
O
.setu
p
-
Anweisun
g
k
ann einen optiona
l
en Parameter
i
n
itial
ent
h
a
l
ten,
d
er
d
em GPIO-Port
b
ereits
beim Initialisieren einen lo
g
ischen Status zuweist. Damit schalten wir in diesem Pro
g
ramm die
g
rüne LED
bereits von An
f
ang an ein. Die anderen beiden LEDs beginnen das Programm im ausgeschalteten Zustand
.
print
(
"Strg+C beendet das Programm"
)
Jetzt wird eine kurze Bedienungsanleitung au
f
dem Bildschirm
aus
g
e
g
eben. Das Pro
g
ramm läu
f
t automatisch. Die Tastenkombination
[
Strg
]
+
[
C
]
soll
es
bee
n
de
n.
U
m
ab
z
u-
f
ra
g
en, ob der Benutzer mit
[
Strg
]
+
[
C
]
d
as Pro
g
ramm
b
een
d
et, verwen
d
en wir eine
t
ry...excep
t
-Ab
f
ra
g
e.
D
abe
i wir
d
de
r
u
n
te
r
t
ry
:
ein
g
etra
g
ene Pro
g
rammcode zunächst normal aus
g
e
f
ührt. Wenn wäh renddessen
eine S
y
stemausnahme au
f
tritt — das kann ein Fehler sein oder auch die Tastenkombination
[
Strg
]
+
[
C
]
–,
wir
d
a
bg
e
b
roc
h
en, un
d
d
ie excep
t
-Anweisun
g
am Pro
g
rammende wird aus
g
e
f
ührt
.
except Key
b
oar
dI
nterrupt
:
GPIO.cleanup
()
Durc
h
d
iese Tasten
k
om
b
ination wir
d
ein Key
b
oar
d
Interrup
t
ausgelöst, und die Schlei
f
e wird automatisch
verlassen. Die letzte Zeile schlie
ß
t die verwendeten GPIO-Ports und schaltet damit alle LEDs aus. Danach wird
das Pro gramm beendet. Durch das kontrollierte Schlie
ß
en der GPIO-Ports tauchen keine Systemwarnungen
oder Abbruchmeldungen au
f
, die den Benutzer verwirren könnten. Der eigentliche Ampelzyklus läu
f
t in einer
En
d
l
ossc
hl
e
i
fe:
whil
e True
:
Solche Endlosschlei
f
en benötigen immer eine Abbruchbedingung, da das Programm sonst nie
bee
n
det
w
e
r
de
n w
ü
r
de
.
t
ime.sleep
(
2
)
Am An
f
ang des Programms und auch bei jedem neuen Beginn der Schlei
f
e leuchtet die grüne
LED
2
Seku
n
de
n.
G
P
IO
.output(
A
mpe
l
[gruen],Fa
l
se
)
G
P
IO
.output(
A
mpe
l
[ge
l
b],
T
rue
)
time.sleep
(
0.6
)
Jetzt wird die grüne LED aus- und da
f
ür die gelbe LED eingeschaltet. Diese leuchtet dann allein
f
ür 0,6
Seku
n
de
n
.
G
P
IO
.output(
A
mpe
l
[ge
l
b],Fa
l
se
)
G
P
IO
.output(
A
mpe
l
[rot],
T
rue
)
time.sleep
(
2
)
Jetzt wird die gelbe LED wieder aus- und da
f
ür die rote eingeschaltet. Diese leuchtet dann allein
f
ür 2
Se
k
un
d
en. Die Rotp
h
ase einer Ampe
l
ist ü
bl
ic
h
erweise
d
eut
l
ic
h
l
änger a
l
s
d
ie Ge
lb
p
h
ase
.
G
P
IO
.output(
A
mpe
l
[ge
l
b],
T
rue
)
time.sleep
(
0.6
)
Zum Start der Rot-Gelb-Phase wird die gelbe LED zusätzlich eingeschaltet, ohne dass eine andere LED ausge
-
schaltet wird. Diese Phase dauert 0,6 Sekunden
.
10145-5 Raspberry Pi verstehen und anwenden_01.indd 2910145-5 Raspberry Pi verstehen und anwenden_01.indd 29 30.06.2017 10:09:3030.06.2017 10:09:30