
Mit einem RTC- Modul (RealTimeClock) soll die Uhrzeit auf einem 4‑stelligen 7‑Segment-Modul angezeigt werden. Nach einer kurzen Pause wird die Temperatur angezeigt und anschließend wieder die Uhrzeit dargestellt.

So sieht es aus:


Benötigte Bauteile:
- RTC-Modul DS3231
- 4‑stellige 7‑Segment-Anzeige TM1637
- Leitungsdrähte
Baue die Schaltung auf:
(Fahre mit der Maus über das Bild, um die Bezeichnungen der Bauteile zu sehen)
Benötigte Bibliotheken:
![]() | ![]() |
oder: Sketch -> Bibliothek einbinden -> Bibliotheken verwalten
Binde die benötigten Bibliotheken ein und definiere die Variablen:
1 2 3 4 5 6 7 8 9 10 11 | // benötigte Bibliotheken einbinden #include “RTClib.h” // Bibliothek TM1637 von AKJ #include “TM1637.h” // Name und Pins für das Anzeigemodul TM1637 Anzeige(2, 3); // Name des RTC-Moduls (rtc) RTC_DS3231 rtc; |
Der setup-Teil. Beachte die Kommentare.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | void setup() { // RTC-Modul starten rtc.begin(); /* wenn Datum und Zeit nicht korrekt -> Datum/Zeit setzen Jahr, Monat, Tag, Stunde, Minute, Sekunde Beispiel: 2024 August 31. 10 Uhr 30 Minuten 30 Sekunden rtc.adjust(DateTime(2024, 8, 31, 10, 31, 30)); Alternative: Synchronisation mit der Zeit zu der das Programm kompiliert wurde: rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); */ // rtc.adjust(DateTime(2024, 8, 31, 10, 31, 30)); // rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); // 7‑Segment-Modul starten Anzeige.begin(); // Helligkeit setzen Anzeige.setBrightness(6); // Bildschirm löschen Anzeige.clearScreen(); } |
Der loop-Teil. Beachte die Kommentare.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | void loop() { // speichern der Uhrzeit als String String Uhrzeit; /* rtc.now() -> aktuelle Zeit holen aktuell.hour() -> Stunde aktuell.minute() -> Minute */ DateTime aktuell = rtc.now(); // Format der Zeitangabe TM1637 festlegen char Zeit[] = “hhmm”; // : einschalten Anzeige.colonOn(); // char-Array in String umwandeln Uhrzeit = aktuell.toString(Zeit); // Uhrzeit anzeigen Anzeige.display(Uhrzeit); // : ausschalten Anzeige.colonOff(); // Temperatur ermitteln und in String umwandeln String Temperatur = String(rtc.getTemperature()); // Temperatur soll als Ganzzahl angezeigt werden // indexOf -> nach . suchen byte Suche = Temperatur.indexOf(“.”); // substring -> String an der Stelle des Punkts kürzen Temperatur = Temperatur.substring(0, Suche); // . durch , ersetzen Temperatur.replace(“.”, “,”); // je nach Wert der Temperatur Leerzeichen an den Anfang setzen if (rtc.getTemperature() >= 10) Temperatur = ” ” + Temperatur; if (rtc.getTemperature() < 10 && rtc.getTemperature() > 0) Temperatur = ” ” + Temperatur; if (rtc.getTemperature() < 0 && rtc.getTemperature() > -10 ) Temperatur = ” ” + Temperatur; if (rtc.getTemperature() < -10 ) Temperatur = ” ” + Temperatur; // 2 Sekunde Pause delay(2000); // Anzeige löschen Anzeige.clearScreen(); // Temperatur anzeigen Anzeige.display(Temperatur); delay(2000); Anzeige.clearScreen(); } |
Verwandte Anleitungen:
letzte Aktualisierung:








