Datum, Uhrzeit und Temperatur auf einem LCD mit einem RTC-Modul anzeigen

Lesezeit: 5 Minuten

Seite als PDF

Der Arduino kann nur ab dem Zeit­punkt des Ein­schal­tens mit ⇒mil­lis() die Zeit messen. Das aktuelle Datum und die Uhrzeit kann nur mit einem RTC-Mod­ul geset­zt und gele­sen wer­den.
Hier soll das Mod­ul DS3231 zum Ein­satz kom­men. Zusät­zlich zur Zeit misst das Mod­ul auch die Tem­per­atur.

Auf dem 4‑zeiligen LCD soll der Wochen­tag, das Datum, die aktuelle Uhrzeit und die Tem­per­atur angezeigt wer­den.

So sieht es auf dem LCD aus:

Download

Zeit im Seriellen Mon­i­tor anzeigen

Download

Zeit im Seriellen Mon­i­tor mit Wochen­tag und Monat­sna­men anzeigen

Schließe das LCD an:

⇒LCD mit I²C-Schnittstelle

RTC-Mod­ul

Nor­maler­weise wäre eine kom­plexe Verk­a­belung zum Betrieb eines LCDs nötig. Der ⇒I²C-Bus regelt über einen eige­nen Mikro­prozes­sor die Kom­mu­nika­tion der Daten­leitun­gen untere­inan­der. Es wer­den deshalb nur vier Anschlüsse benötigt.

Die Hel­ligkeit kann mit einem Poten­tiome­ter auf der Rück­seite des LCDs eingestellt wer­den.

Benötigte Bauteile:

  • 4‑zei­li­ges LCD mit I²C-Schnittstelle
  • RTC-Mod­ul DS3231
  • Leitungs­drähte

Baue die Schal­tung auf.
(Fahre mit der Maus über das Bild, um die Beze­ich­nun­gen der Bauteile zu sehen)

Benötigte Bib­lio­theken:

Funktionen der Bibliothek Adafruit RTClib

Schlüs­sel­wortAnzeige/Parameter
adjust(DateTime(Jahr Monat, Tag, Stunde, Minute, Sekunde)Beispiel:
rtc.adjust(DateTime(2025, 4, 17, 10, 31, 30));
now()aktuelle Zeit holen
day­OfThe­Week()Num­mer des Wochen­t­ages
0 = Son­ntag
1 = Mon­tag

6 = Sam­stag
day()Tag
month()Monat
1 = Jan­u­ar
2 = Feb­ru­ar

12 = Dezem­ber
year()Jahr
hour()Stunde
minute())Minute
sec­ond())Sekunde
Uhrzeit als Array definieren:
char Zeit[] = “Uhrzeit: hh:mm:ss”
print(aktuell.toString(Zeit))
hh = Stun­den
mm = Minuten
ss = Sekun­den
Datum als Array definieren:
char Datum[] = “DD.MM.YYYY”
print(aktuell.toString(Datum))
DD = Tag
MM = Monat
YYYY = 4‑stelliges Jahr
get­Tem­per­a­ture()Tem­per­atur ermit­teln
lost­pow­er()unter­sucht, ob das Mod­ul zwis­chen­zeitlich nicht mit Strom ver­sorgt wurde

Die Zeit kann mit unter­schied­li­chen Metho­den geset­zt wer­den, lei­der sind bei­de nicht genau:

  • mit der Angabe von Datum und Uhrzeit:
    rtc.adjust(DateTime(2025, 4, 17, 10, 30, 30));
    For­mat: Jahr, Monat, Tag, Stunde, Minute, Sekun­den
    Man muss dann sofort nach der Fes­tle­gung das Pro­gramm kom­pilieren, die Uhr wird ver­mut­lich etwas vor- oder nachge­hen, je nach­dem wie gut die Zeit zwis­chen der Änderung und dem Abschluss der Kom­pilierung geschätzt wurde.
    Vor der näch­sten Kom­pilierung muss die Zeile ent­fer­nt wer­den.
  • mit der Zeit zu der das Pro­gramm kom­piliert wurde:
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
    Solange die Zeit des Com­put­ers mit einem Zeit­serv­er syn­chro­nisiert wurde, wird die Uhrzeit lediglich ein wenig nachge­hen.

Definiere die Vari­ablen und binde die benötigten Bib­lio­theken ein:

Der set­up-Teil:

Der loop-Teil. Beachte die Kom­mentare.

Du kannst auch die Monat­sna­men anzeigen lassen:

Eine weit­ere Alter­na­tive: Zeit mit den Funk­tio­nen hour(), minute() und sec­ond() anzeigen:


Startseite
Aufgaben A-Z
Suchen
Downloads
Fehlermeldungen
Seite als PDF

Verwandte Anleitungen:


Letzte Aktualisierung: Nov. 3, 2025 @ 21:27