#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <RTClib.h>
// LCD 16x2 mit I2C Adresse 0x27
LiquidCrystal_I2C lcd(0x27, 16, 2); // Die Adresse ist 0x27, 16 Spalten und 2 Zeilen
// DS1307 RTC-Modul
RTC_DS1307 rtc;
void setup() {
// Starte die serielle Kommunikation zur Fehlersuche
Serial.begin(9600);
// LCD initialisieren (jetzt mit den richtigen Parametern)
lcd.begin(16, 2); // 16 Spalten und 2 Zeilen
lcd.backlight(); // Hintergrundbeleuchtung einschalten
// RTC initialisieren
if (!rtc.begin()) {
Serial.println("Kein RTC-Modul gefunden!");
while (1); // Stopp, falls das RTC-Modul nicht gefunden wird
}
// Falls das RTC-Modul noch nicht gesetzt ist (z.B. nach erstmaligem Hochfahren)
if (!rtc.isrunning()) {
Serial.println("RTC läuft nicht, setze die Zeit...");
rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); // Setzt die Zeit auf die Kompilierungszeit des Sketches
}
}
void loop() {
// Hole die aktuelle Zeit und das Datum vom RTC
DateTime now = rtc.now();
// Ausgabe der Uhrzeit auf dem Serial Monitor
Serial.print(now.hour(), DEC);
Serial.print(':');
if (now.minute() < 10) {
Serial.print('0');
}
Serial.print(now.minute(), DEC);
Serial.print(':');
if (now.second() < 10) {
Serial.print('0');
}
Serial.println(now.second(), DEC);
// Ausgabe des Datums auf dem Serial Monitor
Serial.print(now.day(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.println(now.year(), DEC);
// Anzeige der Uhrzeit auf dem LCD (erste Zeile)
lcd.clear(); // LCD leeren
lcd.setCursor(0, 0); // Cursor auf die erste Zeile setzen
lcd.print("Uhrzeit: ");
lcd.print(now.hour(), DEC);
lcd.print(":");
if (now.minute() < 10) {
lcd.print('0');
}
lcd.print(now.minute(), DEC);
lcd.print(":");
if (now.second() < 10) {
lcd.print('0');
}
lcd.print(now.second(), DEC);
// Anzeige des Datums auf dem LCD (zweite Zeile)
lcd.setCursor(0, 1); // Cursor auf die zweite Zeile setzen
lcd.print(now.day(), DEC);
lcd.print('/');
lcd.print(now.month(), DEC);
lcd.print('/');
lcd.print(now.year(), DEC);
delay(1000); // 1 Sekunde warten
}