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:
// 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.
void setup()
{
// RTC-Modul starten
rtc.begin();
/*
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));
*/
// 7-Segment-Modul starten
Anzeige.begin();
// Helligkeit setzen
Anzeige.setBrightness(6);
// Bildschirm löschen
Anzeige.clearScreen();
}
Der loop-Teil. Beachte die Kommentare.
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:
- Automatische Tür mit Hall-Sensoren
- Countdown mit einer einstelligen 7-Segment-Anzeige
- Countdown mit einem OLED-Display
- Datum und Zeit mit dem NTP-Protokoll anzeigen
- ESP32-Wroom – BMP280/DHT Zeit und Messdaten auf TFT anzeigen
- Farbenspiele mit einer RGB-Matrix
- Glücksrad mit NeoPixel-Ring
- Labyrinth-Spiel mit TFT und Fernbedienung
- Labyrinthspiel mit Joystick und TFT
- Länder-Info
- LED-Matrix - Countdown
- LED-Matrix - Joystick-Spiel
- LED-Matrix - Lauflicht
- LED-Matrix Würfeln
- Lottozahlen - Anzeige auf einem LCD
- Lottozahlen - Anzeige auf einem OLED-Display
- Multiplikations-Taschenrechner
- Spiel mit einer RGB-Matrix
- Spielautomat mit einer RGB-Matrix
- Taschenrechner Grundrechenarten
- Würfeln einstellige 7-Segment-Anzeige und Fernbedienung
- Würfeln - Anzeige auf einem OLED-Display
- Würfelspiel mit einer vierstelligen Anzeige
- Würfeln mit einer einstelligen Anzeige
letzte Aktualisierung: