#105
Jedes Mal, wenn die Taste gedrückt wird, ändert sich der Zustand der LED: ist sie an, schaltet sie aus, ist sie aus, schaltet sie ein. Klassisches Toggle-Muster. Mit der Entprellung wird das mechanische Geräusch des Tasters beseitigt, um ein einmaliges Umschalten mit einem einzigen Druck zu gewährleisten.


1const int LED_PIN = 5;
2const int BUTTON_PIN = 4;
3
4bool ledState = false;
5bool lastButton = HIGH;
6unsigned long lastPress = 0;
7const unsigned long DEBOUNCE = 50;
8
9void setup() {
10 pinMode(LED_PIN, OUTPUT);
11 pinMode(BUTTON_PIN, INPUT_PULLUP);
12}
13
14void loop() {
15 bool buttonState = digitalRead(BUTTON_PIN);
16
17 if (buttonState == LOW && lastButton == HIGH && (millis() - lastPress > DEBOUNCE)) {
18 ledState = !ledState;
19 digitalWrite(LED_PIN, ledState);
20 lastPress = millis();
21 }
22 lastButton = buttonState;
23}