Wie kann ich mit Arduino einen Timer programmieren?

Elumania  20.03.2024, 13:42

Nutzt du dieses LCD Modul mit Tastenblock oder ein LCD Modul ohne Tastenblock und dann möchtest du einen eigenen Taster verwenden um das Programm zu starten?

mihawkonepiece 
Fragesteller
 20.03.2024, 17:41

Also ich glaub wir haben ein Lcd Modul ohne Tastenblock und ich glaub das ja auf dem Arduino so ein Knopf ist mit dem man das Programm neu starten kann

3 Antworten

Ich bin bei sowas immer gerne ein Freund von Nutzung der "millis()".

Dazu findest Du ein Beispiel unter "Blink without delay"... Man könnte natürlich auch Delay nutzen, aber während der Pause ist keine weitere Funktion möglich. Wenn man über die millis()-Funktion geht, kann man unabhängig davon auf jede weitere Funktion, Tastendruck usw reagieren. Das macht die ganze Sache sehr flexibel...

Wenn der Arduino nichts anderes als den Timer machen soll, kannst Du ganz einfach den Sleep Befehl verwenden.

Setze eine Variable auf 60,
lasse das Programm eine Sekunde schlafen,
reduziere die Variable um 1,
lass die Variable im Display anzeigen,
stoppe sobald die Variable 0 erreicht.

Wenn der Arduino noch mehr Funktionen haben soll (Du schreibst ja etwas von einem Schießstand), dann funktioniert diese Lösung nicht.
In dem Fall kannst Du mit der millis Funktion und der deltatime arbeiten.
Die ist allgemein auch die genauere und elegantere Lösung.

Die millis Funktion zeigt Dir an wie viel Zeit seit dem Start des Arduinos vergangen ist.
Darüber kannst Du die Zeit regelmäßig abfragen und prüfen kann eine Sekunde vergangen ist. Und dann entsprechend den Timer aktualisieren.

Das ganze funktioniert dann über if-abfragen und kann daher ganz einfach zusammen mit anderen Programmabläufen benutzt werden.