#include <Arduino.h>
#include <LiquidCrystal_I2C.h>
#include "RTClib.h"
RTC_DS1307 rtc;
LiquidCrystal_I2C lcd = LiquidCrystal_I2C(0x27,16,2);
char Wochentage[7][3] = {"So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"};
void LCDprintTime( byte hd, byte m, byte sy, char trenner ) ;
void SerialprintTime( byte hd, byte m, byte sy, char trenner ) ;
void setup() {
Serial.begin(9600);
if (! rtc.begin()) {
Serial.println("Ich kann die RTC nicht finden!");
Serial.flush();
abort();
}
lcd.init();
lcd.backlight();
}
void loop() {
//rtc.refresh();
DateTime jetzt = rtc.now();
lcd.setCursor(0, 0);
LCDprintTime( jetzt.day(), jetzt.month(), jetzt.year()%100, '.' ) ;
lcd.print(" (");
lcd.print( Wochentage[jetzt.dayOfTheWeek()] );
lcd.print(") ");
lcd.setCursor(0, 1);
LCDprintTime( jetzt.hour(), jetzt.minute(), jetzt.second(), ':' ) ;
SerialprintTime( jetzt.day(), jetzt.month(), jetzt.year()%100, '.' ) ;
String day = " (" + String(Wochentage[jetzt.dayOfTheWeek()]) + ") " ;
Serial.print( day );
SerialprintTime( jetzt.hour(), jetzt.minute(), jetzt.second(), ':' ) ;
Serial.println() ;
delay(1000);
}
void LCDprintTime( byte hd, byte m, byte sy, char trenner )
{
if( hd < 10) lcd.print(0);
lcd.print(hd);
lcd.print( trenner ) ;
if( m < 10) lcd.print(0);
lcd.print(m);
lcd.print( trenner ) ;
if( sy < 10) lcd.print('0');
lcd.print(sy);
lcd.print(" ") ;
}
void SerialprintTime( byte hd, byte m, byte sy, char trenner )
{
if( hd < 10) Serial.print(0);
Serial.print(hd);
Serial.print( trenner ) ;
if( m < 10) Serial.print(0);
Serial.print(m);
Serial.print( trenner ) ;
if( sy < 10) Serial.print(0);
Serial.print(sy);
}