Print-Potenziometer 10kOhm


Google-Suche auf MEINE-SCHALTUNG.de :





Dauerkalender


Arduino - While - Schleife

Ähnlich wie mit einer For-Schleife kann man auch mit einer While-Schleife ganze Programmteile nach Bedarf wiederholen. Ebenfalls ähnlich wie die For-Schleife gehört die While-Schleife zu den sogenannten kopfgesteuerten Schleifen. D.h. die Bedingung, die darüber entscheidet, ob die Schleife fortgesetzt oder beendet werden soll, befindet sich im Kopf der Schleife und wird vor jedem Durchlauf untersucht. Anders als bei einer For-Schleife wird die Anzahl der Durchläufe, die für eine For-Schleife charakteristisch ist, nicht festgelegt. So eignet sich diese Schlaufe für Abfrage der Zustände, derer Eintreten unvorhersehbar sind, z.B. Tastatureingaben, Temperaturanstieg oder Ähnliches. Hier ist es nicht abzuschätzen, wann ein Nutzer eine Tastaturtaste betätigt oder wann die Raumtemperatur einen gewünschten Wert erreicht. Die While-Schleife läuft solange, solange die Bedingung im Schleifenkopf wahr ist und ist von einem Durchlaufzähler nicht abhängig.
Die Struktur einer While-Schleife:


  // ----------------------------------------------------------
  // Strunktur einer While-Schleife


    while (IstWert<=Grenzwert) {
      // Anweisung1 
      // Anweisung2 
      // Anweisung...
    }

  // ----------------------------------------------------------

Diese While-Schleife läuft solange der IstWert den Grenzwert nicht überschritten hat und führt die in den geschweiften Klammern {} eingefügte Anweisungen aus. Bei Bedarf kann man in dem Schleife-Code eine weitere Bedingung einbauen und die Schleife mit der Anweisung break vorzeitig verlassen.
Beispiel:


  // ----------------------------------------------------------
  // While-Schleife


  float Temperatur;
  float Umrechnungsfaktor = 30;

  void setup() {
    Serial.begin(9600);
    Temperatur = analogRead(0) / Umrechnungsfaktor;
  }

  void loop() {
    while (Temperatur>=17) {
      Temperatur = analogRead(0) / Umrechnungsfaktor;
      Serial.print ("Es herrschen angenehme ");
      Serial.print (Temperatur);
      Serial.println (" °C.");
      delay(1000);
    }
    Serial.println ("Bitte ziehen Sie sich an. Erkältungsgefahr!");
  }

  // ----------------------------------------------------------

Nach dem Start des Programms wird der Wert des analogen Eingangs 0 ausgelesen und mit dem Umrechnungsfaktor die aktuelle Temperatur ausgerechnet. Beträgt der Temperaturwert 17 Grad oder liegt darüber, springt das Programm in die While-Schleife und zeigt uns die aktuelle Temperatur auf dem Monitor an:
Es herrschen angenehme 25.57 °C.
Das Programm untersucht jetzt in der Schleife in regelmäßigen Zeitabständen (hier 1 Sek.) die aktuelle Temperatur und zeigt sie an, solange die Bedingung der Schlaufe erfüllt ist. Sobald die Temperatur unter den Grenzwert von 17 Grad gefallen ist, wird die Schleife verlassen und es werden die Anweisungen ausgeführt, die nach der Schleife stehen. In diesem Fall erhalten wir die Meldung:
Bitte ziehen Sie sich an. Erkältungsgefahr!

Möchte man, dass zuerst die Schleifen-Sequenz ausgeführt und dann die Bedingung für einen erneuten Durchlauf geprüft wird, verwendet man vorzugsweise die do while Schleife. Diese Art einer Schleife gehört zu den fußgesteuerten Schleifen. Die Schleife wird mit dem Schlüsselwort do eingeleitet, danach kommt der Programmblock, der mit den geschweiften Klammern abgegrenzt wird. Die Kontrolle erfolgt mit der Schlüsselwort while, das am Ende des Blocks positioniert wird. Mit der do-while-Schleife würde unser Beispiel jetzt so aussehen:


  // ----------------------------------------------------------
  // Do-While-Schleife


  float Temperatur;
  float Umrechnungsfaktor = 30;

  void setup() {
    Serial.begin(9600);
  }

  void loop() {
    do {
      Temperatur = analogRead(0) / Umrechnungsfaktor;
      Serial.print ("Aktuelle Temperatur beträgt ");
      Serial.print (Temperatur);
      Serial.println (" °C.");
      delay(1000);
    } while (Temperatur>=17);
    Serial.println ("Bitte ziehen Sie sich an. Erkältungsgefahr!");
  }

  // ----------------------------------------------------------


Arduino_Programmierung




Google-Suche auf MEINE-SCHALTUNG.de :


Dil Leistungsschuetze Kloeckner Moeller

Home Impressum Datenschutz