hello_mbot_button
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
hello_mbot_button [2025/02/05 12:52] – [Quellcode (engl. Sourcecode)] torsten.roehl | hello_mbot_button [2025/02/18 11:44] (aktuell) – [Bessere isButtonPressed() Variante] torsten.roehl | ||
---|---|---|---|
Zeile 31: | Zeile 31: | ||
return true; | return true; | ||
return false; | return false; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Diese Variante von '' | ||
+ | |||
+ | ==== Bessere isButtonPressed() Variante ==== | ||
+ | |||
+ | < | ||
+ | Die Funktion erkennt, ob der Taster **neu gedrückt** wurde und __verhindert mehrfaches Zählen__, solange der Knopf gehalten wird. | ||
+ | </ | ||
+ | |||
+ | |||
+ | <Code c linenums:1 | Listing 1: | ||
+ | bool isButtonPressed() { | ||
+ | static bool buttonPressed = false; | ||
+ | int value = analogRead(PIN_BUTTON); | ||
+ | |||
+ | if (value < threshold) { | ||
+ | if (!buttonPressed) { | ||
+ | buttonPressed = true; | ||
+ | return true; | ||
+ | } | ||
+ | } else { | ||
+ | buttonPressed = false; // Button wurde losgelassen | ||
+ | } | ||
+ | return false; | ||
+ | |||
} | } | ||
</ | </ | ||
=== Erklärungen zum Quellcode === | === Erklärungen zum Quellcode === | ||
- | + | * **Liest den Tasterwert aus** ('' | |
+ | * Falls der Wert **unter dem Schwellenwert** liegt (Knopf gedrückt): | ||
+ | * Prüft, ob der Knopf zuvor nicht gedrückt war ('' | ||
+ | * **Setzt '' | ||
+ | * Falls der Knopf **losgelassen** wird ('' | ||
+ | * <color # | ||
+ | |||
+ | <WRAP center round important 96%> | ||
+ | **Vorteile** | ||
+ | |||
+ | * ✅ **Verhindert mehrfaches Hochzählen** bei langem Tastendruck | ||
+ | * ✅ **Sorgt für saubere Zustandserkennung** | ||
+ | * ✅ **Erlaubt erst neuen Tastendruck**, | ||
+ | </ |
hello_mbot_button.1738759969.txt.gz · Zuletzt geändert: 2025/02/05 12:52 von torsten.roehl