User manual

38
time.sleep(2)
GPIO.output(Ampel[gruen],False); GPIO.output(Ampel[gelb],True)
time.sleep(0.6)
GPIO.output(Ampel[gelb],False); GPIO.output(Ampel[rot],True)
time.sleep(0.6)
for i in range(10):
GPIO.output(Ampel[blau],True); time.sleep(0.05)
GPIO.output(Ampel[blau],False); time.sleep(0.05)
time.sleep(0.6)
GPIO.output(Ampel[gelb],True); time.sleep(0.6)
GPIO.output(Ampel[rot],False)
GPIO.output(Ampel[gelb],False)
GPIO.output(Ampel[gruen],True)
except KeyboardInterrupt:
GPIO.cleanup()
4.1.1 Zo werkt het
Het programmaverloop is uitgebreid bekend. Tijdens de nu iets langere roodfase moet het blauwe voet-
gangerslicht snel knipperen.
blauw = 4 Een nieuwe variabele definieert de LED voor het voetgangerslicht in de lijst.
Ampel=[4,18,23,24] De lijst wordt met vier elementen uitgebreid, om de vier LED's te kunnen aansturen.
GPIO.setup(Ampel[blau], GPIO.OUT, initial=False) De nieuwe LED wordt geïnitialiseerd en
aanvankelijk uitgeschakeld. Dit is de basisinstelling tijdens de groenfase van het verkeerslicht.
time.sleep(0.6)
for i in range(10):
GPIO.output(Ampel[blau],True); time.sleep(0.05)
GPIO.output(Ampel[blau],False); time.sleep(0.05)
time.sleep(0.6)
In de verkeerslichtcyclus start 0,6 seconden na begin van de roodfase een lus, die de blauwe LED laat
knipperen. Hiervoor gebruiken wij hier een
for-lus, die in tegenstelling tot de in de voorgaande
experimenten gebruikte
while-lussen altijd een bepaald aantal lusdoorlopen gebruikt, en niet loopt tot aan
een bepaalde afbreekvoorwaarde is voldaan.
for i in range(10): Elke for-lus heeft een lusteller nodig, een variabele, die bij elke lusdoorloop een
nieuwe waarde aanneemt. Voor eenvoudige lustellers is in alle programmeertalen de variabelennaam
i
ingeburgerd. Elke andere naam is natuurlijk ook mogelijk. Deze waarde kan als elke andere variabele binnen
de lus worden opgevraagd, wat hier echter niet nodig is. De parameter
range in de lus geeft aan, hoe vaak
de lus doorloopt, nauwkeuriger gezegd, welke waarden de lusteller kan aannemen. In ons voorbeeld loopt
de lus tien keer. De lusteller
i krijgt hierbij waarden van 0 tot en met 9. Binnen de lus wordt de nieuwe
blauwe LED ingeschakeld en na 0,05 seconden weer uitgeschakeld. Na meerdere 0,05 seconden is een
lusdoorloop beëindigd en de volgende start weer met het inschakelen van de LED. Op deze manier knippert
ze tien keer, dit duurt in totaal 1 seconde.