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:  von torsten.roehl
                
                