# include "RTClib.h"
# include "LCDIC2.h"
// Name des RTC-Moduls
RTC_DS3231 rtc;
// 4-zeiliges LCD
LCDIC2 lcd(0x27, 20, 4);
void setup()
{
// RTC-Modul starten
rtc.begin();
/*
wenn Datum und Zeit nicht korrekt -> Datum/Zeit setzen
Jahr, Monat, Tag, Stunde, Minute, Sekunde
Beispiel: 2024 Mai 5. 10 Uhr 30 Minuten 30 Sekunden
rtc.adjust(DateTime(2024, 5, 5, 10, 30, 30));
*/
// LCD starten
lcd.begin();
// Cursor "verstecken"
lcd.setCursor(false);
}
void loop()
{
// aktuelle Zeit holen
DateTime aktuell = rtc.now();
lcd.setCursor(0, 0);
/*
Wochentag anzeigen
0 = Sonntag
1 = Montag
...
6 = Samstag
*/
switch (aktuell.dayOfTheWeek()) {
case 0:
lcd.print("Sonntag");
break;
case 1:
lcd.print("Montag");
break;
case 2:
lcd.print("Dienstag");
break;
case 3:
lcd.print("Mittwoch");
break;
case 4:
lcd.print("Donnerstag");
break;
case 5:
lcd.print("Freitag");
break;
case 6:
lcd.print("Samstag");
break;
}
// Datum anzeigen
lcd.setCursor(0, 1);
char Datum[] = "Datum: DD.MM.YYYY";
// Datum in String umwandeln und anzeigen
lcd.print(aktuell.toString(Datum));
// Zeit anzeigen
lcd.setCursor(0, 2);
// Format der Uhrzeit festlegen
char Zeit[] = "Uhrzeit: hh:mm:ss";
// Datum in String umwandeln und anzeigen
lcd.print(aktuell.toString(Zeit));
// gemessene Temperatur in String umwandeln
String Temperatur = String(rtc.getTemperature());
// angelsächsische Schreibweise der Temperatur
// . durch , ersetzen
Temperatur.replace(".", ",");
lcd.setCursor(0, 3);
// Sonderzeichen für ° = \337
// Temperatur anzeigen
lcd.print("Temperatur: " + Temperatur + "\337C");
delay(1000);
}
Letzte Aktualisierung: