Warum sollte man ein Taster entprellen?

Es ruft kurzzeitig bei Betätigung der taste mehrfach ein und aus.

Ohne Entprellung kann es zu unerwünschten Effekten kommen, z.B dass ein Taster mehrmals „ausgelöst“ wird. Dies kann zu falschen oder verwirrenden Ergebnissen in Programmen führen, z.B. dass eine LED mehrfach blinkt oder eine Eingabe doppelt gezählt wird.

Lösung:

Ein Delay einbauen wie zum Beispiel 50ms. 

...zur Antwort

Die Verwendung von millis() ist sinnvoll, da delay() den gesamten Programmablauf blockiert. Wenn der delay() aktiv ist, pausiert der Mikrocontroller alle anderen Funktionen, wodurch keine parallelen Aufgaben ausgeführt werden können. Wenn gleichzeitig Sensoren ausgelesen, Eingaben verarbeitet oder andere zeitkritische Aufgaben erledigt werden müssen, kann dies problematisch sein. Im Gegensatz dazu ist millis() nicht-blockierend. Es ermöglicht, die verstrichene Zeit seit Programmstart zu messen, ohne den Programmfluss zu unterbrechen. Dies erlaubt die Implementierung von Aufgaben wie das Blinken einer LED in einem Zeitintervall, während andere Prozesse weiterlaufen. Beispielsweise könnte eine LED alle 500 ms blinken, während gleichzeitig ein Temperatursensor ausgelesen und eine serielle Kommunikation verarbeitet wird. millis() ermöglichen Multitasking-fähige Programme Flexibilität und Effizienz an. Bei Projekten mit mehreren parallelen Aufgaben ist millis() am geeignetsten.

...zur Antwort