Wenn der Arduino eingeschaltet wird, kann er ab diesem Zeitpunkt die abgelaufene Zeit messen. Das aktuelle Datum und die Uhrzeit kann nur mit einem RTC-Modul (RealTimeClock) gesetzt und gelesen werden. Beim ersten Start muss das aktuelle Datum und die aktuelle Zeit manuell eingestellt werden, anschließend läuft die Zeit mit Hilfe der Batterie weiter. Das Modul DS3231 kann zusätzlich auch die Temperatur messen.
Anwendungsbeispiele
- in Computern: die RTC gibt das Datum und die Uhrzeit an das jeweilige Betriebssystem weiter
- Haushaltsgeräten: Echtzeituhren steuern Kochvorgänge, zeigen die verbleibende Laufzeit der Waschmaschine an
- Steuerung der Heizung: Sommer- und Winterbetrieb, Tag- Nachtschaltung Einstellung der Heizphasen im Tagesverlauf
- die Erfassung und Speicherung der Arbeitszeiten der Mitarbeiter*innen in einem Betrieb
- Bezahlsysteme: Datum und Uhrzeit werden mit auf den Beleg gedruckt
Zunächst musst du eine Bibliothek installieren und einbinden. Bibliotheken stellen Funktionen bereit, mit denen du ein Bauteil verwenden kannst. In diesem Fall ist es die Bibliothek RTClib.
Bibliothek hinzufügen
Sketch -> Bibliothek einbinden -> Bibliotheken verwalten
Datum, Zeit und Temperatur im Seriellen Monitor anzeigen
Das dazugehörige Programm:
// benötigte Bibliothek einbinden
# include
// Name des RTC-Moduls (rtc)
RTC_DS3231 rtc;
void setup()
{
// RTC-Modul starten
rtc.begin();
Serial.begin(9600);
/*
wenn Datum und Zeit nicht korrekt -> Datum/Zeit setzen
Jahr, Monat, Tag, Stunde, Minute, Sekunde
Beispiel: 2022 August 31. 10 Uhr 30 Minuten 30 Sekunden
rtc.adjust(DateTime(2022, 8, 31, 10, 31, 30));
*/
}
void loop()
{
// rtc.now() -> aktuelle Zeit holen
DateTime aktuell = rtc.now();
/*
Datumsformat festlegen
DD -> Tag mit führender 0
MM -> Monat mit führender 0
YYYY -> vollständige Angabe des Jahres
*/
char Datum[] = "DD.MM.YYYY ";
// Datum in Zeichenkette (String) umwandeln und anzeigen
Serial.print(aktuell.toString(Datum));
// Format der Zeitangabe festlegen
char Zeit[] = "hh:mm:ss";
// Zeitangabe in Zeichenkette (String) umwandeln und anzeigen
Serial.print(aktuell.toString(Zeit));
// Temperatur ermitteln
String Temperatur = String(rtc.getTemperature());
// Wert wird im angelsächsisches Zahlenformat ermittelt
// . durch , ersetzen
Temperatur.replace(".", ",");
Serial.println(" Temperatur: " + Temperatur + "°C");
// 1 Sekunde Pause
delay(1000);
}
Funduino - Dein Onlineshop für Mikroelektronik
-
Dauerhaft bis zu 10% Rabatt für Schüler, Studenten und Lehrkräfte
-
Mehr als 3.500 Artikel sofort verfügbar!
-
Über 8 Jahre Erfahrung mit Arduino, 3D-Druck und co.
SALE