Zum Inhalt springen
Arduino LED Rechner

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 wiederholen. 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. Praktischerweise können wir das genau in der Zeile erledigen:


    Sieh dir jetzt meinen neuen Arduino-Videokurs an: Jetzt ansehen!


    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 dreimal 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.

    Als Schaltung verwenden wir einfach wieder die aus Lektion 8:

    Und, läuft es? Super, es blinkt dreimal, 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 zehnmal, 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!

    0 0 votes
    Article Rating
    Abonnieren
    Benachrichtige mich bei

    Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden..

    12 Comments
    Newest
    Oldest Most Voted
    Inline Feedbacks
    Alle Kommentare anzeigen
    Noah&Luisa
    5 Monate zuvor

    Hallo,
    Endlich eine gut verständliche deutsche Seite für Arduino-Anfänger :) Vielen Dank

    Das Beispiel mir dem Rechner hat bei uns allerdings erst geklappt, als wir auch vor meinErgebnis ‚int‘ geschrieben haben.

    Liebe Grüße

    kai
    4 Jahre zuvor

    Wie muss man das den aufbauen ?

    Peter Günter
    5 Jahre zuvor

    Hallo ich heiße Peter Günter
    mir gefällt die seite sehr gut weil sie sehr gut verständlich ist und sogar ich es verstehen kann
    macht so weiter

    der Micha
    6 Jahre zuvor

    Klasse.
    Ich mache gerade (mit 56) meine allerersten Schritte in Prgrammierung und Microcontroller und habe das Blinkbeispiel auf dem Nano nun damit zu einem SOS verändern können.
    Gut verständlich erklärt und umzusetzen.

    Vielen Dank.
    Mit besten Grüßen,
    der Micha

    Esshak Al Aloo
    7 Jahre zuvor

    Hallo,

    welches Code kann ich schreiben, um eine Befehl von Rechner zu Arduino schicken.
    z.B ich möchten eine LED an und-ausmachen indem ich „1“ zu Arduino sende, d.h. ich schicke eine „1“ geht die LED an und wenn ich nochmal eine „1“ schicke, geht die LED aus ?

    Ich würde mich sehr freuen auf eine Rückmeldung.
    Grüße Esshak

    philipp
    10 Jahre zuvor

    Hallo!
    Erst einmal vielen Dank für die tolle Seite! Ich glaube hier hat sich ein (kleiner) Fehler eingeschlichen.

    Unter „Startwert“ steht :
    „for (int zaehler=0; Test; Fortsetzung){
    Es ist also eine ganzzahlige Variable (int), die zaehler heißt und gleich Null ist.“

    Ich fände besser, wenn es heißen würde:
    „for (int zaehler=1; Test; Fortsetzung){
    Es ist also eine ganzzahlige Variable (int), die zaehler heißt und gleich Eins ist.“

    Viele Grüße,
    Philipp

    Jacob
    10 Jahre zuvor

    Hi!
    Ich habe alles so gemacht wie es da steht, aber bei mir kommt dann, dass der Build-Ordner verschwunden ist oder nicht geschrieben werden konnte.
    Viele Grüße,
    Jacob

    12
    0
    Ich würde mich über deine Meinung freuen.x