// LED verbonden aan digitale uitgangspin 10 int ledPin = 10; // void setup draait één keer voordat de loop begint void setup() { // stelt de digitale pin in als uitgang pinMode(ledPin, OUTPUT); } // void loop draait eindeloos void loop() { // 3 dits for (int x=0; x<3; x++) { digitalWrite(ledPin, HIGH); // zet de LED aan delay(150); // wacht 150ms digitalWrite(ledPin, LOW); // zet de LED uit delay(100); // wacht 100ms } // 100ms wachten tussen de letters in delay(100); // 3 dahs for (int x=0; x<3; x++) { digitalWrite(ledPin, HIGH); // zet de LED aan delay(400); // wacht 400ms digitalWrite(ledPin, LOW); // zet de LED uit delay(100); // wacht 100ms } // 100ms wachten tussen de letters in delay(100); // 3 dits again for (int x=0; x<3; x++) { digitalWrite(ledPin, HIGH); // zet de LED aan delay(150); // wacht 150ms digitalWrite(ledPin, LOW); // zet de LED uit delay(100); // wacht 100ms } // wacht 5 seconden voor het herhalen van het SOS signaal delay(5000); }
In deze code worden commando’s gebruikt die we kennen van het LED flits voorbeeld.
Het eerste blok verzorgt de 3 bits (korte flitsen).
for (int x=0; x<3; x++) { digitalWrite(ledPin, HIGH); // zet de LED aan delay(150); // wacht 150ms digitalWrite(ledPin, LOW); // zet de LED uit delay(100); // wacht 100ms }
Er zijn drie uitdrukkingen die we kunnen gebruiken in een for loop: de initialisatie, de voorwaarde en de optelsom.
De initialisatie is het startpunt. De voorwaarde controleert hoe vaak de inhoud tussen { en } is afgedraaid. In ons geval is de voorwaarde x<3; en wordt de inhoud tussen de { en } net zolang afgedraaid totdat x, 3 is. Terwijl de for loop draait wordt de voorwaarde steeds getest, als blijkt dat er nog niet aan de voorwaarde is voldaan dan geeft de optelsom aan dat de for loop nogmaals gedraaid moet worden.
De < is een vergelijking operator.
Ze worden gebruikt bij het maken van beslissingen en vergelijken waarden of toestanden met elkaar.
== Gelijk aan
!= Niet gelijk aan
< Kleiner dan
> Groter dan
<= Kleiner dan of gelijk aan
>= Groter dan of gelijk aan
De x++ vergroot de waarde van x met 1 en het zou ook zo geschreven kunnen worden:
x = x + 1
Als de voorwaarde bijv. x<12 zou zijn en de optelsom is x = x + 2, dan knippert hij 6 maal.
De variabele x bevind zich in dit geval in een lokaal bereik.
x wordt dus alleen gebruikt in de for loop waarin hij actief is.
Als je x buiten de for loop zou proberen aan te spreken zou je een foutmelding krijgen.
Het is ook mogelijk om een for loop in een andere for loop te plaatsen:
for (int x=0; x<3; x++) { for (int x=0; x<3; x++) { digitalWrite(ledPin, HIGH); // zet de LED aan delay(150); // wacht 150ms digitalWrite(ledPin, LOW); // zet de LED uit delay(100); // wacht 100ms } for (int x=0; x<3; x++) { digitalWrite(ledPin, HIGH); // zet de LED aan delay(450); // wacht 450ms digitalWrite(ledPin, LOW); // zet de LED uit delay(100); // wacht 100ms } }