Wat gaan we doen?
Nog meer led’s. In een gewone taal kan je de zelfde gebeurtenis op veel manieren beschrijven. In computertaal is het net zo. We willen nu 6 ledjes achtereenvolgens laten branden. We kunnen dan een sketch beginnen met alle led’s aan pinnen toe te wijzen (int ledPin1=2 etc. etc.) vervolgens in de setup alle pinnen output maken (pinmode led-Pin1, OUTPUT etc etc) en tenslotte ze in de loop allemaal HIGH en LOW laten worden (digitalWrite ledPin1, HIGH etc. etc.). Al met al wordt het een omvangrijk programma. Dat kan ook anders, korter: Met onze "for"-loop van de vorige pagina. De "for"-loop wordt gebruikt om te tellen. In de vorige sketch telde we getallen van 0 tot 255 die werden omgezet naar spanningspulsen. Nu worden de pinnen geteld. De ledjes zijn aangesloten op de pinnen 2 t/m 7. Die worden achtereenvolgens geteld en worden high en low gezet. Bekijk de instructie : for (int thisPin = 2; thisPin < 8; thisPin++). De pin wordt hier een variabele die ‘thisPin’ heet. Als het programma de eerste keer de loop doorloopt is de waarde van thisPin 2 (pin 2 dus). Dan wordt er gecontroleerd of ‘thisPin’ kleiner is dan 8. Wordt ‘thisPin’ 8, dan stopt deze loop en gaat het programma verder. Tenslotte wordt de stapgrootte aangegeven en die is hier ’++’ en dat betekent dat er telkens met 1 stap omhooggegaan wordt (dus eerst pin 2, dan 3,4,5,6,7). De volgende for loop werkt precies andersom: We beginnen bij pin 7, steeds 1 naar beneden (‘--’), tot en met pin 2 (zodat de ledjes in de omgekeerde volgorde aan en uit gaan). Er zit nóg een slimmigheidje in de sketch. Helemaal boven staat: int timer = 100. Hiermee wordt de timer variabel gemaakt en hoef je alleen het getal te veranderen en overal waar delay(timer) staat wordt nu automatisch het nieuwe getal gelezen. Monteer nu de ledjes zoals op de afbeelding rechtsboven en upload de sketch. Opdracht: Zet nog twee lampjes erbij en pas de sketch aan. |