e = v.get()
t = 1.0/g.get()
if e == 1:
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="Klik op de button, om het looplicht te
starten").pack()
for txt, m in patroon:
Radiobutton(root, text = txt, variable = v, value = m).pack(anchor=W)
Label(root, text="snelheid").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()
10.3.1
Zo werkt het
De initialisatie van de bibliotheken en GPIO-poorten alsmede de definitie van de lijst voor de drie
knipperpatronen komen overeen met het voorafgaande programma. De definitie van de variabelen
knippertijd vervalt, omdat deze later van de schuifregelaar wordt afgelezen.
g = IntVar(); g.set(5)
opgeslagen, wordt een andere in interger-variabele
startwaarde van
, die overeenkomt met de gemiddelde waarde van de schuifregelaar.
5
def LedEin():
e = v.get(); t = 1.0/g.get()
De functie, die de LED's laat knipperen, komt eveneens overeen met het vorige voorbeeld, echter met een
verschil. De variabele
88
Aanvullend op de Tk-variabelen
voor de knipperduur wordt bepaald uit de waarde van de schuifregelaar.
t
, waarin het gekozen knipperpatroon wordt
v
voor de snelheid gedeclareerd. Deze bevat een
g
voor de
t