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.
Een nieuwe variabele definieert de LED voor het voetgangerslicht in de lijst.
blauw = 4
Ampel=[4,18,23,24]
GPIO.setup(Ampel[blau], GPIO.OUT, initial=False)
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
experimenten gebruikte
een bepaalde afbreekvoorwaarde is voldaan.
for i in range(10):
nieuwe waarde aanneemt. Voor eenvoudige lustellers is in alle programmeertalen de variabelennaam
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
de lus doorloopt, nauwkeuriger gezegd, welke waarden de lusteller kan aannemen. In ons voorbeeld loopt
de lus tien keer. De lusteller
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.
38
De lijst wordt met vier elementen uitgebreid, om de vier LED's te kunnen aansturen.
-lussen altijd een bepaald aantal lusdoorlopen gebruikt, en niet loopt tot aan
while
Elke
-lus heeft een lusteller nodig, een variabele, die bij elke lusdoorloop een
for
krijgt hierbij waarden van
i
De nieuwe LED wordt geïnitialiseerd en
-lus, die in tegenstelling tot de in de voorgaande
for
tot en met
0
in de lus geeft aan, hoe vaak
range
. Binnen de lus wordt de nieuwe
9
i