Endlosschleifen können durch sicherzustellende Abbruchbedingungen, eine Begrenzung der Durchläufe oder einen Notausstieg mit einer zusätzlichen Bedingung vermieden werden.
Eine FOR-Schleife eignet sich besonders gut, wenn die Anzahl der Durchläufe vorher bekannt ist, z. B. bei Zählvorgängen oder Iterationen durch Arrays.
Die DO-WHILE-Schleife garantiert, dass der Code mindestens einmal ausgeführt wird, was bei Benutzereingaben oder erstmaligem Sensorauslesen nützlich ist.
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.
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.