Instructions

4
8
time.s
l
eep(0.1
)
for c in range(100, -1, -2)
:
p
.
Ch
ange
D
uty
C
yc
l
e(c
)
time.s
l
eep(0.1
)
exce
p
t Key
b
oar
dI
nterru
p
t
:
p
.sto
p()
; GPIO.cleanu
p()
6
.1
So
fun
k
tionie
r
t
es
Ein Tei
l
d
ieses Pro
g
ramms wir
d
I
h
nen
b
e
k
annt vor
k
ommen, eini
g
e E
l
emente a
b
er vie
ll
eic
h
t
g
ar nic
h
t,
d
a
wir an dieser Stelle einen Exkurs in die ob
j
ektorientierte Pro
g
rammierun
g
machen. Am An
f
an
g
werden, wie
b
e
k
annt, Bi
bl
iot
h
e
k
en importiert. Diesma
l
wir
d
nur eine einzi
g
e Varia
bl
e,
LED
,
f
ür den GPIO-Port18
f
est
g
e le
g
t,
d
ieser wir
d
a
l
s Aus
g
an
g
initia
l
isiert
.
print
(
"Strg+C beendet das Programm"
)
D
a auc
h
d
ieses Pro
g
ramm mit einem
t
ry...excep
t
-K
o
n
st
r
ukt
läu
f
t und vom Benutzer an
g
ehalten werden muss, wird eine entsprechende In
f
ormation
f
ür den Benutzer an
g
e-
ze
ig
t.
p = GPIO.PWM
(
LED, 50
)
Di
e
F
u
n
kt
i
o
n GPIO.PWM
()
aus
de
r
G
PI
O
-Bi
b
li
ot
h
e
k i
st
e
n
tsc
h
e
i
de
n
d
r
d
i
e
Ausga
b
e von PWM-Signa
l
en. Diese Fun
k
tion
b
enötigt zwei Parameter,
d
en GPIO-Port un
d
d
ie Frequenz
d
es
PWM-Signa
l
s. In unserem Fa
ll
wir
d
d
er GPIO-Port ü
b
er
d
ie Varia
bl
e
LED
f
estgelegt, die Frequenz ist 50 Hertz
(
Schwingungen pro Sekunde
)
.
Warum 50Hertz die ideale Frequenz für PWM is
t
Das menschliche Auge nimmt Lichtwechsel schneller als 20Hertz nicht mehr wahr. Da das Wechsel
-
stromnetz in Europa eine Frequenz von 50Hertz nutzt, blinken viele Beleuchtungskörper mit dieser Fre
-
quenz, die vom Auge nicht wahrgenommen wird. Würde eine LED mit mehr als 20Hertz, aber weniger als
50Hertz blinken, könnte es zu Interferenzen mit anderen Lichtquellen kommen, wodurch der Dimmeffekt
nicht mehr gleichmäßig erschiene
.
GPIO.PWM
()
erzeugt ein sogenanntes O
b
je
k
t,
d
as in
d
er Varia
bl
en
p
gespeic
h
ert wir
d
. So
l
c
h
e O
b
je
k
te sin
d
weit
mehr als nur ein
f
ache Variablen. Objekte können verschiedene Eigenscha
f
ten haben und über soge nannte
Methoden beein
usst werden. Methoden werden, durch einen Punkt getrennt, direkt hinter dem Objektnamen
angege
b
en
.
p.start
(
0
)
D
i
e
M
et
h
ode
s
tart
()
startet die Generierung des PWM-Signals. Dazu muss noch ein Tastver-
h
ä
l
tnis angege
b
en wer
d
en. In unserem Fa
ll
ist
d
as Tastver
h
ä
l
tnis
0
,
d
ie LED ist a
l
so immer ausgesc
h
a
l
tet. Jetzt
startet die Endlosschlei
f
e, in der direkt nacheinander zwei Schlei
f
en eingebettet sind, die abwechselnd die LED
helle
r
u
n
d
du
n
kle
r w
e
r
de
n
lasse
n
.
for c in range
(
0, 101, 2
)
: Di
e
Sc
hl
e
i
fe
z
ä
hl
t
in
Sc
hri
tte
n v
o
n
2
v
o
n
0
b
i
s
100
. A
ls
En
de
e
in
e
r
fo
r
-
Schlei
f
e wird immer der Wert angegeben, der gerade nicht erreicht wird, in unserem Fall
101
.
p.ChangeDutyCycle
(
c
)
I
n jedem Schlei
f
endurchlau
f
setzt die Methode
C
hangeDutyCycle
()
das
T
ast
v
e
r
hält-
nis des PWM-Objekts au
f
den Wert des Schlei
f
enzählers, also jedes Mal um 2% höher, bis es beim letzten
Durchlauf auf 100% steht und die LED in voller Helligkeit leuchtet
.
10145-5 Raspberry Pi verstehen und anwenden_01.indd 4810145-5 Raspberry Pi verstehen und anwenden_01.indd 48 30.06.2017 10:09:3330.06.2017 10:09:33