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
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
knipperen en niet achtereenvolgend worden opgeroepen.
elif e == "4":
for i in range(w):
for j in range(z):
time.sleep(2*t)
for j in range(z):
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
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
en
w
De functie
random.randint()
of gelijk aan de eerste parameter en kleiner of gelijk aan de tweede parameter, kan dus in ons geval de
waarden
,
,
,
aannemen.
0
1
2
3
De willekeurig gekozen LED wordt in- en na de vertragingstijd weer uitgeschakeld. Hierna start de lus
opnieuw en een nieuwe LED wordt willekeurig gekozen.
52
heeft ingevoerd, start een ander knipperpatroon, waarbij alle LED's gelijktijdig
GPIO.output(LED[j], True)
GPIO.output(LED[j], False)
ingevoerd, knipperen de LED's volledig willekeurig.
5
knippert elke LED gemiddeld zo vaak als in het eerste patroon.
z
schrijft een willekeurig getal in de variabele
, wordt de dubbele vertragingstijd
time.sleep(2*t)
j
. Dit willekeurig getal is groter