Bevor ihr mit dem richtigen Coding anfangt, würde ich euch empfehlen, die Beispielcodes anzuschauen und einige davon zu testen, um euch mit dem RTC Bauteil und seinen Funktionen vertraut zu machen. Zuerst müsst ihr aber folgende zwei Libraries hinzufügen:

//Bibliotheken für die rtc
#include "Wire.h" //für die Kommunikation mit dem rtc modul
#include "RTClib.h"

Danach erstellt ihr erstmal ein Char, in dem ihr die Wochentage speichert.

Wie ihr wahrscheinlich in dem Beispielen bereits gesehen habt, muss immer ein Objekt für das RTC_DS3231 erstellt werden.

In unserem Fall haben wir es einfach rtc (für Real Time Clock) genannt.

char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};

RTC_DS3231  rtc;
clock_t clock();

Beim Void Setup müsst ihr die Clock dann starten.
In den vier Zeilen danach wird noch sichergestellt, dass der Nutzer eine Fehlermeldung bekommt, falls die RTC nicht gestartet wurde.
Danach wird mit der .adjust Funktion die Uhrzeit automatisch eingestellt.

rtc.begin();
  

  //------------------------ starten der Uhr und Zeiteinstellung ----------------------------

  if (! rtc.begin()) {
    Serial.println("Couldn't find RTC");
    while (1);
  }

  rtc.adjust(DateTime(__DATE__, __TIME__));


 

Im Void loop werden die Uhrzeit und das Datum in Variablen gespeichert. Die Uhrzeit besteht aus Stunden, Minuten und Sekunden. Diese drei Werte werden alle einzeln mit verschiedenen Funktionen ausgelesen. In diesen Zeilen werden alle drei in einem Char namens „Uhrzeit“ zusammengefügt und dann im Serial Monitor ausgegeben.
Das Gleiche machen dann nochmal für das Datum, welches auch aus drei einzelnen Werten (Tag, Monat und Jahr) besteht.

Zum Schluss tragt ihr die beiden Variablen oder auch alle Werte einzeln, wie oben beschrieben, in die print Funktion der LED Matrix ein.

//---------------------------- Dtaum und Uhrzeit speichern --------------------------------------------------

  DateTime now = rtc.now();

  char uhrzeit[12]= "";
  uhrzeit[12] = now.second(), now.minute(), now.hour();

  Serial.println(uhrzeit);

  char datum[12]= "";
  datum[12] = now.day(), now.month(), now.year();

  Serial.println(datum);
Last modified: Friday, 17 September 2021, 10:20 PM