Lektion 10 – For-Schleife und der LED Rechner

Eine tolle Sache im Programmieren sind Schleifen, wie die for-Schleife. Damit können wir Aufgaben wiederholen. Wir können unsere LED zum Beispiel eine bestimmte Anzahl oft blinken lassen.

Die for-Schleife kann das, was in ihr steht, eine bestimmte Anzahl oft widerholen. Sie sieht folgendermaßen aus:

for (Startwert; Test; Fortsetzung){ 

}

In die geschweiften Klammern kommen die Befehle, die wiederholt werden sollen. Hier soll also unser LED-Blinken stehen:

for (Startwert; Test; Fortsetzung){ 
  digitalWrite(ledPin, HIGH);
  delay(200);
  digitalWrite(ledPin, LOW);
  delay(200);
}

Startwert

Für den Startwert legen wir eine neue Variable an. Praktischer Weise können wir das genau in der Zeile erledigen:

for (int zaehler=1; Test; Fortsetzung){

Es ist also eine ganzzahlige Variable (int), die zaehler heißt und gleich Eins ist.

Fortsetzung

Jedes Mal, wenn die Schleife durchlaufen wird, soll zaehler mit 1 addiert werden. Also schreiben wir bei Fortsetzung: zaehler = zaehler +1

for (int zaehler=1; Test; zaehler = zaehler+1){

Test

Wir wollen, dass die LED drei Mal blinkt und haben schon eine Variable, die bei jedem blinken um 1 größer wird. Die Schleife soll so lange ausgeführt werden, wie zaehler kleiner als 4 ist. Das kann man im Programmieren leicht machen: zaehler<4

for (int zaehler=1; zaehler<4; zaehler = zaehler+1){

Jetzt müssen wir nach der for-Schleife nur eine lange Pause einbauen damit das Arduino-Programm nicht sofort wieder von vorn beginnt. Das ganze Programm sieht also so aus:

int ledPin = 9;

void setup(){
  pinMode(ledPin,OUTPUT);
}

void loop(){
  for (int zaehler=1; zaehler<4; zaehler = zaehler+1){
    digitalWrite(ledPin, HIGH);
    delay(200);
    digitalWrite(ledPin, LOW);
    delay(200);
  }
  delay(2000);
}

Lade das Programm auf das Arduino.

Läuft es? Super, es blinkt drei Mal, dann macht das Programm eine Pause. Ändere einmal die Zahl beim Test auf 10. Was passiert?

int ledPin = 9;

void setup(){
  pinMode(ledPin,OUTPUT);
}

void loop(){
  for (int zaehler=1; zaehler<10; zaehler = zaehler+1){
    digitalWrite(ledPin, HIGH);
    delay(200);
    digitalWrite(ledPin, LOW);
    delay(200);
  }
  delay(2000);
}

Es blinkt nur neun Mal, oder? Dann mach bitte aus dem kleiner als (<) ein kleiner gleich (<=).

int ledPin = 9;

void setup(){
  pinMode(ledPin,OUTPUT);
}

void loop(){
  for (int zaehler=1; zaehler<=10; zaehler = zaehler+1){
    digitalWrite(ledPin, HIGH);
    delay(200);
    digitalWrite(ledPin, LOW);
    delay(200);
  }
  delay(2000);
}

Jetzt blinkt es zehn Mal, oder? Lass uns einen kleinen Rechner damit bauen. Als erstes legen wir die Variable meinErgebnis an und übergeben sie der for-Schleife.

int ledPin = 9;
int meinErgebnis;

void setup(){
  pinMode(ledPin,OUTPUT);
}

void loop(){
  for (int zaehler=1; zaehler<=meinErgebnis; zaehler = zaehler+1){
    digitalWrite(ledPin, HIGH);
    delay(200);
    digitalWrite(ledPin, LOW);
    delay(200);
  }
  delay(2000);
}

Und jetzt müssen wir das Programm etwas rechnen lassen. Wie wäre es mit 2 + 3 ?

int ledPin = 9;
int meinErgebnis;

void setup(){
  pinMode(ledPin,OUTPUT);
}

void loop(){
  meinErgebnis = 2 + 3;
  for (int zaehler=1; zaehler<=meinErgebnis; zaehler = zaehler+1){
    digitalWrite(ledPin, HIGH);
    delay(200);
    digitalWrite(ledPin, LOW);
    delay(200);
  }
  delay(2000);
}

Lade das Programm auf dein Arduino-Board und schau, wie oft es blinkt. Rechne dann auch andere Aufgaben wie 4 + 7 oder 329 + 12. Jetzt hast du deinen eigenen Blink-Rechner gebaut!