#include <Wire.h>
#include <TimeLib.h>
#include <DS1307RTC.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
Serial.begin(9600);
//while (!Serial) ; // wait for serial
delay(200);
Serial.println("DS1307RTC Read Test");
Serial.println("-------------------");
lcd.init();
lcd.backlight();
}
void loop() {
tmElements_t tm;
if (RTC.read(tm)) {
Serial.print("Ok, Time = ");
print2digits(tm.Hour);
Serial.write(':');
print2digits(tm.Minute);
Serial.write(':');
print2digits(tm.Second);
//Serial.print(", Date (D/M/Y) = ");
//Serial.print(tm.Day);
//Serial.write('/');
//Serial.print(tm.Month);
//Serial.write('/');
//Serial.print(tmYearToCalendar(tm.Year));
Serial.println();
} else {
if (RTC.chipPresent()) {
Serial.println("The DS1307 is stopped. Please run the SetTime");
Serial.println("example to initialize the time and begin running.");
Serial.println();
} else {
Serial.println("DS1307 read error! Please check the circuitry.");
Serial.println();
}
delay(9000);
}
delay(1000);
lcd.setCursor(0, 0);//Hier wird die Position des ersten Zeichens festgelegt. In diesem Fall bedeutet (0,0) das erste Zeichen in der ersten Zeile.
//lcd.print("Funduino GmbH");
lcd.print("Es ist ");
//=======================================================================================================//|
// //|
// Abfrage Minuten //|
// //|
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//|
if(tm.Minute<3){
lcd.print("");
}else if (tm.Minute>=3 && tm.Minute<8){
lcd.print("5 nach");
}else if (tm.Minute>=8 && tm.Minute<13){
lcd.print("10 nach");
}else if (tm.Minute>=13 && tm.Minute<18){
lcd.print("viertel nach");
}else if (tm.Minute>=18 && tm.Minute<23){
lcd.print("20 nach");
}else if (tm.Minute>=23 && tm.Minute<28){
lcd.print("5 vor halb");
}else if (tm.Minute>=28 && tm.Minute<33){
lcd.print("halb");
}else if (tm.Minute>=33 && tm.Minute<38){
lcd.print("5 nach halb");
}else if (tm.Minute>=38 && tm.Minute<43){
lcd.print("20 vor");
}else if (tm.Minute>=43 && tm.Minute<48){
lcd.print("dreiviertel");
}else if (tm.Minute>=48 && tm.Minute<53){
lcd.print("10 vor");
}else if (tm.Minute>=53){
lcd.print("5 vor");
}
lcd.print(" ");
//=======================================================================================================//|
// //|
// Abfrage Stunden //|
// //|
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//|
if (tm.Hour > 12)
tm.Hour -= 12;
if (tm.Hour == 0)
tm.Hour = 12;
if(tm.Hour==1 && tm.Minute<25){
lcd.print("eins");
}else if (tm.Hour==1 && tm.Minute>=25){
lcd.print("zwei");
}
if(tm.Hour==2 && tm.Minute<25){
lcd.print("zwei");
}else if (tm.Hour==2 && tm.Minute>=25){
lcd.print("drei");
}
if(tm.Hour==3 && tm.Minute<25){
lcd.print("drei");
}else if (tm.Hour==3 && tm.Minute>=25){
lcd.print("vier");
}
if(tm.Hour==4 && tm.Minute<25){
lcd.print("vier");
}else if (tm.Hour==4 && tm.Minute>=25){
lcd.print("fuenf");
}
if((tm.Hour==5) && (tm.Minute<25)){
lcd.print("fuenf");
}
if ((tm.Hour==5 && tm.Minute>=25)){
lcd.print("sechs");
}
if((tm.Hour==6) && (tm.Minute<25)){
lcd.print("sechs");
}
if ((tm.Hour==6) && (tm.Hour>=25)){
lcd.print("sieben");
}
if((tm.Hour==7) && (tm.Minute<25)){
lcd.print("sieben");
}
if ((tm.Hour==7) && (tm.Minute>=25)){
lcd.print("acht");
}
if(tm.Hour==8 && tm.Minute<25){
lcd.print("acht");
}else if (tm.Hour==8 && tm.Minute>=25){
lcd.print("neun");
}
if(tm.Hour==9 && tm.Minute<25){
lcd.print("neun");
}else if (tm.Hour==9 && tm.Minute>=25){
lcd.print("zehn");
}
if(tm.Hour==10 && tm.Minute<25){
lcd.print("zehn");
}else if (tm.Hour==10 && tm.Minute>=25){
lcd.print("elf");
}
if(tm.Hour==11 && tm.Minute<25){
lcd.print("elf");
}else if (tm.Hour==11 && tm.Minute>=25){
lcd.print("zwölf");
}
if(tm.Hour==12 && tm.Minute<25){
lcd.print("zwölf");
}else if (tm.Hour==12 && tm.Minute>=25){
lcd.print("eins");
}
lcd.setCursor(0, 1);// In diesem Fall bedeutet (0,1) das erste Zeichen in der zweiten Zeile.
if (tm.Hour < 10) lcd.print('0');
lcd.print(tm.Hour);
lcd.print(":");
lcd.print(tm.Minute);
lcd.print(":");
if (tm.Second < 10) lcd.print('0');
lcd.print(tm.Second);
}
void print2digits(int number) {
if (number >= 0 && number < 10) {
Serial.write('0');
}
Serial.print(number);
}