User manual
52
De eerste binnenste lus schakelt de LED's opeenvolgend met een vertraging in. Aan het einde van de lus, die
kan worden herkend aan het uitspringen van de regel
time.sleep(2*t), wordt de dubbele vertragingstijd
onderhouden. Gedurende die tijd branden alle LED's. Hierna begint een andere lus, die achterwaarts telt en
de één na de andere LED weer uitschakelt. Ook hier wordt aan het einde, wanneer alle LED's uit zijn, de
dubbele vertragingstijd onderhouden, voordat de buitenste lus de totale cyclus nog een keer start.
Patroon 4
Als de gebruiker een 4 heeft ingevoerd, start een ander knipperpatroon, waarbij alle LED's gelijktijdig
knipperen en niet achtereenvolgend worden opgeroepen.
elif e == "4":
for i in range(w):
for j in range(z):
GPIO.output(LED[j], True)
time.sleep(2*t)
for j in range(z):
GPIO.output(LED[j], False)
time.sleep(t)
Omdat niet meerdere GPIO-poorten met een enkele aanwijzing in één keer kunnen worden in- of
uitgeschakeld, worden ook hier lussen gebruikt, echter zonder tijdsvertraging binnen de lus. De vier LED's
worden direct na elkaar ingeschakeld. Voor het menselijke oog verschijnt het gelijktijdig. Aan het einde van
de eerste binnenste lus onderhoudt het programma de dubbele vertragingstijd, voordat alle LED's weer
worden uitgeschakeld.
Door verschillende aan- en uittijden kunnen verschillende effecten bij knipperlichten worden gecreëerd.
Knipperen wordt eerder waargenomen, wanneer de aan-tijd langer duurt dan de uit-tijd. Zeer korte aan-
tijden tijdens vergelijkbare lange uittijden creëren een knippereffect.
Patroon 5
Heeft de gebruiker een 5 ingevoerd, knipperen de LED's volledig willekeurig.
elif e == "5":
for i in range(w*z):
j = random.randint(0,z-1)
GPIO.output(LED[j], True); time.sleep(t)
GPIO.output(LED[j], False)
Omdat hier geen geneste lussen worden gebruikt, laten we de lus vaker doorlopen. Door vermenigvuldiging
van de variabelen
w en z knippert elke LED gemiddeld zo vaak als in het eerste patroon.
De functie
random.randint() schrijft een willekeurig getal in de variabele j. Dit willekeurig getal is groter
of gelijk aan de eerste parameter en kleiner of gelijk aan de tweede parameter, kan dus in ons geval de
waarden
0, 1, 2, 3 aannemen.
De willekeurig gekozen LED wordt in- en na de vertragingstijd weer uitgeschakeld. Hierna start de lus
opnieuw en een nieuwe LED wordt willekeurig gekozen.