User manual
10.3.1 Így működik
A könyvtárak és a GPIO-portok inicializálása, valamint a három villogóminta listájának a
meghatározása megfelel az előző programénak. A villogási idő
t változójának a
meghatározása elmarad, mivel az később a tolószabályzóról kerül kiolvasásra.
g = IntVar(); g.set(5) Kiegészítésül a v Tk-változóhoz, amelyben a kiválasztott villogási minta
tárolódik, még egy további egész számú változó, a
g kerül deklarálásra a sebesség számára.
Ennek a kezdeti értéke
5, amely a tolószabályzó középértékének felel meg.
A LED-eket villogtató funkció ugyancsak megfelel az előbbi példának, azonban egy
különbséggel. A villogás időtartamát meghatározó
t változó a tolószabályzó g értékéből kerül
meghatározásra.
Mivel a felhasználó a gyorsabb villogást ösztönösen a nagyobb sebességgel társítja, a
tolószabályzó jobbra tolva nagyobb értékekeket szállít. A programban azonban a nagyobb
sebességhez rövidebb várakozási időre, azaz kisebb értékre van szükség. Ezt reciprok érték
képzéssel érjük el,
for
i
in
range(w):
for
j
in
range(4):
GPIO.output(LED[j], True); time.sleep(t)
GPIO.output(LED[j], False)
elif
e ==
2:
for
i
in
range(w):
for
j
in
range(4):
GPIO.output(LED[j], True)
time.sleep(t)
for
j
in
range(4):
GPIO.output(LED[j], False)
time.sleep(t)
else
for
i
in
range(w):
for
j
in
range(4):
GPIO.output(LED[3-j], True): time.sleep(t)
GPIO.output(LED[3-j], False)
Label(root,
text="Bitte Button klicken,
um
das Lauflicht zu
starten").pack()
for
txt,
m
in muster:
Radiobutton(root, text=
txt,
variable = v, value = m).pack(anchor=W)
Label(root, text="Geschwindigket").pack()
Scale(root, orient=HORIZONTAL, from_ = 1, to = 10, variable = g).pack()
Button(root, text="Start", command=LedEin).pack(side=LEFT)
root.mainloop()
GPIO.cleanup()
def LedEin():
e =
v.get();
t
=
1.0/g.get()
88