
Der Arduino kann nur ab dem Zeitpunkt des Einschaltens die Zeit messen. Das aktuelle Datum und die Zeit kann nur mit einem RTC-Modul gesetzt und gelesen werden. Beim ersten Start muss das aktuelle Datum und die aktuelle Zeit manuell gesetzt werden, anschließend lauft die Zeit mit Hilfe der Batterie weiter.
Benötigte Bibliothek:
Sketch → Bibliothek einbinden → Bibliotheken verwalten

Die Methoden der Bibliothek RTCLib:
rtc -> Name des Moduls
aktuell -> Name der über rtc.now() ermittelten Zeit
Schlüsselwort | Anzeige |
---|---|
adjust(DateTime(Jahr Monat, Tag, Stunde, Minute, Sekunde); | Beispiel: rtc.adjust(DateTime(2020, 12, 13, 13, 31, 30)); |
aktuell.dayOfTheWeek() | Nummer des Wochentages 0 = Sonntag 1 = Montag . . . 6 = Samstag |
aktuell.day() | Tag |
aktuell.month() | Monat 1 = Januar 2 = Februar ... 12 = Dezember |
aktuell.year() | Jahr |
aktuell.hour() | Stunde |
aktuell.minute()) | Minute |
aktuell.second()) | Sekunde |
Uhrzeit als Array definieren: char Zeit[] = "Uhrzeit: hh:mm:ss"; print(aktuell.toString(Zeit)); | hh = Stunden mm = Minuten ss = Sekunden |
Datum als Array definieren: char Datum[] = "DD.MM.YYYY"; print(aktuell.toString(Datum)); | DD = Tag MM = Monat YYYY = 4-stelliges Jahr |
now() | aktuelle Zeit holen |

Beispiel: Zeit im Seriellen Monitor anzeigen

# include <RTClib.h>
// Name des RTC-Moduls
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
rtc.adjust(DateTime(2020, 12, 13, 13, 31, 30));
*/
}
void loop()
{
// aktuelle Zeit holen
DateTime aktuell = rtc.now();
/*
Wochentag anzeigen
0 = Sonntag
1 = Montag
...
6 = Samstag
*/
switch (aktuell.dayOfTheWeek())
{
case 0:
Serial.print("Sonntag");
break;
case 1:
Serial.print("Montag");
break;
case 2:
Serial.print("Dienstag");
break;
case 3:
Serial.print("Mittwoch");
break;
case 4:
Serial.print("Donnerstag");
break;
case 5:
Serial.print("Donnerstag");
break;
case 6:
Serial.print("Samstag");
break;
}
// Leerzeichen hinzufügen
Serial.print(" ");
// Datum anzeigen
Serial.print(String(aktuell.day()) + ".");
/*
Monatsnamen anzeigen
1= Januar
2 = Februar
...
12 = Dezember
*/
Serial.print(" ");
switch (aktuell.month())
{
case 1:
Serial.print("Januar");
break;
case 2:
Serial.print("Februar");
break;
case 3:
Serial.print("M\341rz");
break;
case 4:
Serial.print("April");
break;
case 5:
Serial.print("Mai");
break;
case 6:
Serial.print("Juni");
break;
case 7:
Serial.print("Juli");
break;
case 8:
Serial.print("August");
break;
case 9:
Serial.print("September");
break;
case 10:
Serial.print("Oktober");
break;
case 11:
Serial.print("November");
break;
case 12:
Serial.print("Dezember");
break;
}
Serial.print(" ");
Serial.print(aktuell.year());
Serial.print(" ");
// wenn Stunden < 10 -> führende 0 setzen
Serial.print("Uhrzeit: ");
if (aktuell.hour() < 10) Serial.print("0");
Serial.print(aktuell.hour());
Serial.print(':');
// wenn Minuten < 10 -> führende 0 setzen
if (aktuell.minute() < 10) Serial.print("0");
Serial.print(aktuell.minute());
Serial.print(':');
// wenn Sekunden < 10 -> führende 0 setzen
if (aktuell.second() < 10) Serial.print("0");
Serial.print(aktuell.second());
Serial.println();
// Alternative mit char-Arrays
char Datum[] = "DD.MM.YYYY";
Serial.print(aktuell.toString(Datum));
Serial.print(" ");
char Zeit[] = "Uhrzeit: hh:mm:ss";
Serial.println(aktuell.toString(Zeit));
delay(1000);
}
Letzte Aktualisierung: