User manual

50
gevallen is dus
raw_input() de betere keuze, omdat men zich niet bezig hoeft te houden met veel
eventualiteiten van mogelijke invoeren.
Het programma wacht, tot de gebruiker een letter invoert en op de
[Enter]-toets drukt. Afhankelijk hiervan,
welk getal de gebruiker heeft ingevoerd, moet nu een bepaald patroon met de LED's worden aangegeven. Om
dit op te vragen, gebruiken wij een
if...elif...else-constructie.
Patroon 1
Was de invoer een 1, wordt het achter deze regel ingesprongen programmadeel uitgevoerd.
if e == "1": Houd er rekening mee, dat inspringingen in Python niet alleen het uiterlijke doel dienen. Net als
bij lussen worden ook dergelijke vragen met een inspringing ingeleid.
Gelijk aan is niet onmiddellijk gelijk aan
Python gebruikt twee typen gelijkheidstekens. Het eenvoudige = is ervoor bedoeld, een bepaalde waarde
aan een variabele toe te wijzen. Het dubbele gelijkheidsteken == wordt in vragen gebruikt en controleert,
of twee waarden werkelijk gelijk zijn.
Indien de gebruiker dus een 1 heeft ingevoerd via het toetsenbord, start een lus, die een cyclisch looplicht
creëert. Deze lussen zijn voor alle gebruikte LED-patronen principieel gelijk gebouwd.
for i in range(w): De buitenste lus herhaalt het patroon zo vaak, als in de eerder gedefinieerde variabelen
w is aangegeven. In deze lus bevindt zich nog één, die het betreffende patroon maakt. Dit is bij elk patroon
verschillend.
for j in range(z):
GPIO.output(LED[j], True); time.sleep(t)
GPIO.output(LED[j], False)
Bij het eenvoudige cyclische looplicht loopt deze lus achtereenvolgend voor elke LED van de lijst een keer
door. Hoeveel LED's dit zijn, is aan het begin van het programma in de variabelen
z opgeslagen. De LED met
het nummer van de actuele stand van de lusteller wordt ingeschakeld. Hierna wacht het programma de
eerder in de variabelen opgeslagen
t tijd en schakelt de LED vervolgens weer uit. Aansluitend begint de
volgende lusdoorloop met de volgende LED. De buitenste lus herhaalt de totale binnenste lus vijf keer.
Patroon 2
Als de gebruiker een 2 heeft ingevoerd, start een overeenkomstige lus. Hier worden de LED's echter niet
alleen in één richting verder geteld, maar aan het einde van het looplicht weer in omgekeerde volgorde. Het
licht loopt afwisselend heen en terug.
elif e == "2": De overige vragen na de eerste keer gebruiken van de vraag elif, met de betekenis, dat ze
alleen dan worden uitgevoerd, wanneer de vorige vraag als resultaat
False heeft geretourneerd.