#10Anfänger

Led Burning mit Taste (Ein Aus)

4.8(100)
157 abgeschlossen
Led Burning mit Taste (Ein Aus)
Ein Toggle-Projekt, das den Zustand der LED (ein/aus) bei jedem Tastendruck ändert. Lehrt Zustandsvariable und Entprellungslogik.

Video

Schaltplan

Led Burning mit Taste (Ein Aus) - Circuit

Quellcode

Arduino (C++)
1int ledState = 0;
2
3void setup() {
4  pinMode(13, INPUT);
5  pinMode(7, OUTPUT);
6}
7
8void loop() {  
9  if (digitalRead(13) == 1) {
10    ledState = !ledState;
11    digitalWrite(7, ledState);
12    delay(300);
13  }   
14}

FAQ

Was ist Debounce und warum ist es notwendig?▾

Sobald der mechanische Taster gedrückt wird, schaltet er für einige Millisekunden mehrfach ein und aus (Prellverhalten). Der Arduino könnte dies als mehrere Tastenbetätigungen interpretieren, wodurch der Zustand der LED unvorhersehbar bleibt. Durch das Debounce-Verfahren werden diese Prellungen ignoriert, indem nach einem Zustandswechsel eine kurze Zeit (z. B. 50 ms) abgewartet wird.

Die LED wechselt manchmal nicht oder wechselt zweimal – warum?▾

In der Regel fehlt die Entprellung oder ist zu kurz. Außerdem muss nur der Moment erfasst werden, in dem die Taste „gedrückt“ wird (vorheriger Zustand LOW, neuer Zustand HIGH); wenn der Zustand in jedem Zyklus geändert wird, solange die Taste gedrückt gehalten wird, flackert die LED und bleibt zufällig leuchten.

Wozu dient die Statusvariable?▾

Es speichert, ob die LED ein- oder ausgeschaltet ist. Bei jedem gültigen Tastendruck wird die Variable invertiert (ledStatus = !ledStatus) und die LED entsprechend diesem Wert angesteuert.

Kann ich mit mehreren Tasten verschiedene LEDs steuern?▾

Ja, es reicht aus, wenn du für jede Taste einen eigenen Pin, einen eigenen Variablenwert für den vorherigen Zustand und einen eigenen Variablenwert für den LED-Zustand speicherst. Wenn du viele Tasten verwendest, lassen sich Arrays und ein auf `millis()` basierender Debounce-Code besser organisieren.

Led Burning mit Taste (Ein Aus) | BlueGrays