Muster = [
("Loopflicht naar links",1), ("Knipperen",2), ("Looplicht naar rechts",3)
]
De teksten van de drie patronen, die kunnen worden gekozen, worden in een speciale lijstvorm gedefinieerd.
Elk van de drie lijstelementen bestaat uit een waardepaar, elk bestaand uit de aangegeven tekst en een
getalwaarde, die later bij de keuze van de betreffende radiobuttons moet worden teruggegeven.
root = Tk(); root.title("LED")
De initialisatie van de
dialoogveld is afwijkend.
v = IntVar(); v.set(1)
Variabelen, die in Tk-dialoogvelden worden gebruikt, moeten in tegenstelling tot de normale Python-
variabelen vóór het eerste gebruik worden gedeclareerd. Deze beide regels declareren een variabele
integer en stellen ze aan het begin op de waarde
def LedEin():
e = v.get()
Nu wordt weer een functie gedefinieerd, die net als in het laatste voorbeeld
niet alleen een LED inschakelt, maar een LED-patroon start. De tweede functie
voorbeeld is hier echter niet nodig. De eerste regel van de nieuwe functie leest de gebruikersinvoer van de
Tk-variabelen
en schrijft de Python-variabele
v
verderop bij de uitleg van de radiobuttons.
Afhankelijk van de gebruikerskeuze worden drie verschillende programmalussen gestart:
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)
In het eerste geval loopt een lus vijf keer door, die achtereenvolgend elk van de vier LED's inschakelt, 0,2 sec-
onden laat branden en weer uitschakelt. De vijf herhalingen en de 0,2 seconden knippertijd zijn via de
variabelen
en
aan het begin van het programma gedefinieerd.
w
t
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)
In het tweede geval worden vijf keer achtereenvolgend alle vier LED's gelijktijdig ingeschakeld en, nadat ze
gedurende 0,2 seconden hebben gebrand, ook weer gelijktijdig uitgeschakeld.
-widget komt weer overeen met het vorige programma, alleen de inhoud van het
root
in.
1
. Hoe de waarde precies in de variabele
e
heet, maar dit keer
LedEin()
uit het laatste
LedAus()
komt, leest u
v
als
v
85