Menu
CoddyTech

Bei jedem Drücken umschalten

Teil des Abschnitts Eingaben der Arduino-Journey von Coddy. Lektion 4 von 22.

Bisher hat die LED den Taster nachgeahmt: an, solange er gedrückt wird, aus, wenn er losgelassen wird. Ein Lichtschalter funktioniert anders: Einmal drücken, um das Licht einzuschalten, erneut drücken, um es auszuschalten. Das ist ein Umschalten.

Zum Umschalten muss das Sketch den Moment erkennen, in dem der Taster gedrückt wird: jetzt gedrückt, aber beim letzten Aufruf von loop() noch nicht gedrückt. Dieser Moment wird als Flanke bezeichnet. Speichere den letzten Messwert in einer Variable oberhalb von setup(), wie bei einem Zähler:

int lastReading = HIGH;

void loop() {
  int reading = digitalRead(2);
  if (reading == LOW && lastReading == HIGH) {
    // der Taster wurde gedrückt
  }
  lastReading = reading;
}

Wenn du den Taster gedrückt hältst, bleibt der Messwert LOW, sodass die Flanke pro Tastendruck nur einmal auftritt, egal wie lange du ihn gedrückt hältst.

Um einen bool umzuschalten, verwende !, was „nicht“ bedeutet: ledOn = !ledOn; ändert true in false und umgekehrt.

challenge icon

Aufgabe

Mittel

Der Taster ist an Pin 2 (INPUT_PULLUP) und die LED an Pin 13 angeschlossen. Lass jeden Tastendruck die LED umschalten:

  • wenn der Taster gedrückt wird (LOW jetzt, HIGH beim letzten Mal), ändere ledOn
  • speichere die Messung am Ende von loop() in lastReading
  • schalte die LED passend zu ledOn ein oder aus

Drücke auf Run, drücke einige Male den Taster und klicke dann auf Check.

Probier es selbst

const int buttonPin = 2;
const int ledPin = 13;

bool ledOn = false;
int lastReading = HIGH;

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

void loop() {
  int reading = digitalRead(buttonPin);
  // Schalte ledOn um, wenn die Taste gedrückt wird
  // Merke dir diesen Messwert für das nächste Mal
  // Schalte die LED entsprechend ledOn ein oder aus
}
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 Eingaben

Übe selbstständig: Arduino-Playground