Wie kann ich mit Arduino einen Timer programmieren?
Hallo, ich und eine Freundin müssen für ein Schulprojekt etwas bauen, wir haben uns jetzt für einen schießstand entschieden und bei diesem soll man insgesamt 60 sekunden Zeit bekommen.Das ganze soll über ein Lcd display angezeigt werden also es soll von 60 runtergezählt werden. Wir benutzen einen Arduino Uno und das Arduino programm. Ich wäre dankbar für jede Hilfe weil wir wirklich verzweifeln es wäre auch okay uns nur einen Tipp zugeben also mit was man das machen muss z.B for-schleife oder If. Wenn ohr nachfragen habt kann ich sie gern so gut wie möglich beantworten.
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?
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
So kann man starten. Hier zählt der Timer von 60 runter.
https://www.tinkercad.com/things/dL5f8iZq4Y3-gf-timer-60sek-auf-lcd-display

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.