RTC-Modul PCF8523


Überblick

Der Ardui­no kann nur ab dem Zeit­punkt des Ein­schal­tens die Zeit mes­sen. Das aktu­el­le Datum und die Zeit kann nur mit einem RTC-Modul (RealTimeClock) gesetzt und gele­sen wer­den. Beim ers­ten Start muss das aktu­el­le Datum und die aktu­el­le Zeit manu­ell gesetzt wer­den, anschlie­ßend läuft die Zeit mit Hil­fe der Bat­te­rie wei­ter.

Wenn das Modul nicht mit Strom ver­sorgt ist, kann die Bat­te­rie (C1220) die Uhr­zeit bis zum nächs­ten Ein­schal­ten puf­fern.

Der Schaltplan

Benö­tig­te Bibliothek

Sketch ⇒ Biblio­thek ein­bin­den ⇒ Biblio­the­ken ver­wal­ten

Funktionen der Bibliothek Adafruit RTClib PCF8253

Schlüs­sel­wortAnzeige/Parameter
begin()Modul initia­li­sie­ren
start()Zeit­mes­sung star­ten
adjust(DateTime(Jahr Monat, Tag, Stun­de, Minu­te, Sekun­de)Bei­spiel:
rtc.adjust(DateTime(2025, 4, 17, 10, 31, 30));
now()aktu­el­le Zeit holen
day­OfT­he­Week()Num­mer des Wochen­ta­ges
0 = Sonn­tag
1 = Mon­tag
. . .
6 = Sams­tag
day()Tag
month()Monat
1 = Janu­ar
2 = Febru­ar
...
12 = Dezem­ber
year() Jahr
hour()Stun­de
minu­te())Minu­te
second())Sekun­de
Uhr­zeit als Array defi­nie­ren:
char Zeit[] = "Uhr­zeit: hh:mm:ss"
print(aktuell.toString(Zeit))
hh = Stun­den
mm = Minu­ten
ss = Sekun­den
Datum als Array defi­nie­ren:
char Datum[] = "DD.MM.YYYY"
print(aktuell.toString(Datum))
DD = Tag
MM = Monat
YYYY = 4-stel­li­ges Jahr
los­t­power()unter­sucht, ob das Modul zwi­schen­zeit­lich nicht mit Strom ver­sorgt wur­de

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

  • mit der Anga­be von Datum und Uhr­zeit:
    rtc.adjust(DateTime(2025, 4, 17, 10, 30, 30));
    For­mat: Jahr, Monat, Tag, Stun­de, Minu­te, Sekun­den
    Man muss dann sofort nach der Fest­le­gung das Pro­gramm kom­pi­lie­ren, die Uhr wird ver­mut­lich etwas vor- oder nach­ge­hen, je nach­dem wie gut die Zeit zwi­schen der Ände­rung und dem Abschluss der Kom­pi­lie­rung geschätzt wur­de.
    Vor der nächs­ten Kom­pi­lie­rung muss die Zei­le ent­fernt wer­den.
  • mit der Zeit zu der das Pro­gramm kom­pi­liert wur­de:
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
    Solan­ge die Zeit des Com­pu­ters mit einem Zeit­ser­ver syn­chro­ni­siert wur­de, wird die Uhr­zeit ledig­lich ein wenig nach­ge­hen.

Anzeige im Seriellen Monitor

Das dazu­ge­hö­ri­ge Pro­gramm:

Erwei­ter­te Ver­si­on mit Anzei­ge der Namen der Wochen­ta­ge und der Monats­na­men:

Das dazu­ge­hö­ri­ge Pro­gramm:

Quelle


Letzte Aktualisierung: März 11, 2026 @ 20:00

Inhalt