Wie bekomme ich die aktuelle Uhrzeit und das aktuelle Datum in Arduino ohne externe Quelle?

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

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:

Geben Sie hier die Bildbeschreibung ein

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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.