Arduino eine Stunde warten?
Wie kann man den Arduino einen Taster abfragen lassen und die Zeit bis eine, zwei, drei usw. Sunden Zählen lassen (jede Stunde soll etwas Passieren)?
Delay geht ja nicht weil er dann "gesperrt" für Eingaben des Tasters ist.
Erwünschte Funktion des Codes:
Beim Start wird eine Zufallszahl mit randomSeed ausgewählt.
Danach kann man diese mit einem Taster sooft man will abrufen lassen. (Auf einem Display) währenddessen soll der Arduino aber auch die Zeit im Blick behalten und nach einer Stunde wird eine weitere Zahl generiert.
Nun wird nur diese auf dem Display angezeigt.
Möchte man beide Zahlen sehen, muss man den Taster drücken.
Nach einer weiteren Stunde soll das Selbe mit einer dritten Zahl geschehen. Insgesamt 7 mal eine neue Zahl.
Ich denke den Rest schaffe ich, aber bei diesem Delay weiss ich nicht wie ich das machen soll.
Gibt es nicht so eine Funktion mit while oder so?
Vielen Dank für eure Antworten im Vorraus
2 Antworten
Mit Millis()... Ein fortlaufender ms-Timer auf den man prüfen kann, ob zwischen einem gespeichertem Wert und dem aktuellen Millis() eine bestimmte Zeit vergangen ist...
millis() läuft erst nach ca 50 Tagen über und beginnt von vorne... Aber selbst dann berechnet der Arduino die Differenz richtig... Funktioniert also bis max 50 Tage Differenz... EIne Stunde ist also kein Problem. Wichtig: Die Variable zum Zwischenspeichern als "unsigned long" deklarieren... Nur dann klappt es richtig, da millis() auch als unsigned long wiedergegeben wird...
Ntc Zeit würde ich nehmen, geht aber nur mit LAN shield oder nodemcu bzw. esp8266 oder eps32. Das ist auch vieeeel genauer also der Timer im Arduino. Alternativ ein RTC Modul.
Muss nicht so genau sein, aber auf eine Stunde, was macht das aus?
Das funktioniert in einem Zeitraum über mehrere Stunden?