RTC-Modul

funduinoshop.com – Dein Onlineshop für Mikroelektronik
Für die Durchführung dieser Anleitung benötigst du:
MengeArtikel
1xFunduino UNO R3 Mikrocontroller – Arduino kompatibel
1xBreadboard (Steckbrett)
diverseJumper Kabel (weiblich/männlich)
1xRTC-Modul


Der Arduino kann nur ab dem Zeitpunkt des Einschaltens die Zeit messen. Das aktuelle Datum und die Zeit kann nur mit einem RTC-Modul (RealTimeClock) gesetzt und gelesen werden. Beim ersten Start muss das aktuelle Datum und die aktuelle Zeit manuell gesetzt werden, anschließend läuft die Zeit mit Hilfe der Batterie weiter. Außer­dem misst das hier ver­wen­de­te Modul DS3231 zusätz­lich die Temperatur.

Echtzeituhren finden im privaten Bereich und in der Industrie Verwendung:

  • in Computern: die RTC gibt die aktuelle Zeit an das jeweilige Betriebssystem weiter
  • Steuerung der Heizung: Sommer- und Winterbetrieb, Tag- Nachtschaltung Einstellung der Heizphasen im Tagesverlauf
  • Echtzeituhren in den verschiedensten Haushaltsgeräten
  • die Erfassung und Speicherung der Arbeitszeiten der Mitarbeiter*innen in einem Betrieb
  • Bezahlsysteme, bei denen Datum und Uhrzeit mit auf den Beleg gedruckt werden

Der Schaltplan:

Zunächst musst du eine Bibliothek installieren und einbinden. Bibliotheken stellen Funktionen bereit, mit denen du ein Bauteil verwenden kannst. In die­sem Fall ist es die Biblio­thek RTClib.

Sketch -> Biblio­thek ein­bin­den -> Biblio­the­ken verwalten

Datum, Zeit und Temperatur im Seriellen Monitor anzeigen

Das dazugehörige Programm:

// benötigte Bibliothek einbinden
# include <RTClib.h>

// 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);
}

funduinoshop.com - Dein Onlineshop für Mikroelektronik
Für die Durchführung dieser Anleitung benötigst du:
Menge
Artikel
1x
1x
diverse
1x
funduinoshop.com - Dein Onlineshop für Mikroelektronik
Für die Durchführung dieser Anleitung benötigst du:
Menge
Artikel
1x
1x
diverse
1x
funduinoshop.com - Dein Onlineshop für Mikroelektronik
Für die Durchführung dieser Anleitung benötigst du:
Menge
Artikel
1x
1x
diverse
1x