Ich arbeite an einem Projekt mit Arduino Uno und SD-Kartenschild. Ich möchte täglich eine Variable zu einer bestimmten Zeit auf der SD-Karte speichern . Wie kann ich die aktuelle Zeit in Arduino abrufen? Jede Hilfe wäre dankbar.
HINWEIS: Arduino ist NICHT mit dem PC verbunden.
Antwort
An Genau genug ist die Verwendung der Funktion millis()
. Der Wert wird seit dem Start des Arduino in Millisekunden zurückgegeben. Wenn Sie das Arduino zu einer bestimmten Zeit starten, können Sie das genaue Datum und die Uhrzeit berechnen.
Warum nicht ein externes Modul? Eine RTC wie die DS3231 kostet nur 5 US-Dollar und enthält einen Temperatursensor für Sie!
Kommentare
- Achten Sie auf die Funktion millis () Nach ca. 50 Tagen umwickeln.
- @AndreCourchesne: arduino.stackexchange.com/questions/12587/…
- Was ist, wenn es sich umhüllt? Ein richtig geschriebenes Uhrprogramm kümmert sich nicht darum.
Antwort
ohne externe Quelle
Sie können „nicht. Der Arduino Uno hat keine Echtzeituhr. Eine Echtzeituhr ist nur so etwas wie 1 US-Dollar von eBay. Zum Beispiel der DS1307 oder der DS3231. Ich habe 5 mit dem Clock-Chip vormontierte Platinen gefunden, einschließlich Batteriehalter, Kristall, Chip und Leiterplatte für 4,20 US-Dollar bei eBay. Batterien nicht mitgeliefert
Schließen Sie das an die I2C-Pins (A4 und A5) an, stellen Sie die Zeit einmal anhand einer geeigneten Skizze ein und schon können Sie loslegen.
Wenn Sie nur etwas tun möchten Alle 24 Stunden (nicht unbedingt um 9:36 Uhr) können Sie einfach millis
verwenden, um festzustellen, wann die entsprechende Anzahl von Millisekunden verstrichen ist. Das Ergebnis von millis
wird ungefähr alle 49 Tage verpackt, aber Sie müssen sich darüber keine Sorgen machen .
Beachten Sie, dass dies der Fall ist Sie können Datum und Uhrzeit nicht protokollieren, aber Sie können etwas protokollieren (z. Die Temperatur) müssen Sie jeden Tag nur wissen, wann Sie mit der Protokollierung begonnen haben.
Antwort
Eine Möglichkeit, die Sie in Betracht ziehen sollten, ist: Verwenden Sie einen 24-Stunden-Plug-In-Timer , der die Stromversorgung des Uno steuert.
Das heißt. So sieht es aus:
Die Schaltung wäre: Netzsteckdose -> Timer -> USB-Ladegerät -> Arduino
Sie können den Timer so einstellen, dass die Uno um 23:30 Uhr ausgeschaltet und wieder eingeschaltet wird Mitternacht.
Bei einem solchen Setup ist millis()
die Zeit seit dem letzten Uno-Start, normalerweise die Zeit seit der vorherigen Mitternacht.
Beim Debuggen können Sie die Startzeit auf einen anderen Wert als Mitternacht einstellen.
Folgende Einschränkungen gelten:
- Ihre Situation ermöglicht tägliche 30 Minuten ( oder was auch immer die Timer-Inkremente sind) Ausfallzeit
- Kann Timerverschiebungen aufgrund von Stromausfällen tolerieren