Datum, Uhr­zeit und Tem­pe­ra­tur anzei­gen RTC-Modul LCD

# 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: 5. Mai 2024 @ 11:21