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

#include "RTClib.h"
#include "LiquidCrystal_I2C.h"

// Name des RTC-Moduls
RTC_DS3231 rtc;

// Name des LCD-Moduls
LiquidCrystal_I2C 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:  2022 August 31. 10 Uhr 30 Minuten 30 Sekunden
    rtc.adjust(DateTime(2022, 8, 31, 10, 31, 30));
 */

  // LCD starten
  lcd.init();
  lcd.backlight();
}

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: 19. Nov 2023 @ 10:37