Menu
CoddyTech

Den Modus merken

Teil des Abschnitts Timing ohne Delay der Arduino-Journey von Coddy. Lektion 7 von 18.

Ein Tastendruck dauert nur einen Sekundenbruchteil, aber was er startet, kann viel länger andauern. Damit das Programm weiterläuft, nachdem die Taste losgelassen wurde, muss sich der Sketch merken, was er gerade tut. Eine Variable dafür heißt Zustand oder Modus:

int mode = 0;   // 0 = aus, 1 = blinkend

Teile loop() in zwei Teile. Zuerst ändern nur die Eingaben den Modus. Dann macht der Rest der Schleife, was der Modus vorgibt:

// 1. Eingaben ändern den Modus
if (digitalRead(blinkButton) == LOW) {
  mode = 1;
}

// 2. Der Modus bestimmt, was passiert
if (mode == 1) {
  // mit millis() blinken
} else {
  digitalWrite(ledPin, LOW);
}

Jede Zahl steht für eine Sache, die der Sketch gerade tun kann. Schreibe in einem Kommentar auf, wofür jede Zahl steht. Ein Sketch kann so viele Modi haben, wie er braucht: 0, 1, 2, 3 und mehr.

challenge icon

Aufgabe

Einfach

Der grüne Taster ist an Pin 2 und der rote an Pin 3 angeschlossen.

  • Der grüne setzt mode auf 1, der rote setzt ihn auf 0.
  • Wenn mode 1 ist, blinkt die LED an Pin 13 mit millis(): 500 ms an und 500 ms aus.
  • Wenn mode 0 ist, ist die LED aus.

Drücke Run, drücke den grünen Taster, lass ihn los und drücke dann den roten. Dann Check.

Probier es selbst

const int ledPin = 13;
const int blinkButton = 2;   // grün
const int offButton = 3;     // rot

int mode = 0;   // 0 = aus, 1 = blinkend

unsigned long previousMillis = 0;
int ledState = LOW;

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(blinkButton, INPUT_PULLUP);
  pinMode(offButton, INPUT_PULLUP);
}

void loop() {
  // 1. die Tasten ändern nur den Modus

  // 2. dann ausführen, was der Modus vorgibt
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Timing ohne Delay

Übe selbstständig: Arduino-Playground