#include <RTClib.h>
RTC_DS1307 rtc;
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);
char buffer[20];
char NamaHari[7][7]= {"Ahad","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"};
void lcd_setup()
{
lcd.init();
lcd.backlight();
lcd.home();
lcd.print("tes 123 dicobaa");
delay(1000);
lcd.clear();
}
void rtc_setup()
{
if(!rtc.begin())
{
lcd.home();
lcd.print("RTC Not OK, time set");
delay(1000);
abort();
}
if(!rtc.isrunning())
{
lcd.home();
lcd.print("RTC Not OK, time set");
delay(1000);
rtc.adjust(DateTime (F(__DATE__),F(__TIME__)));
}
}
void tampil_waktu(DateTime waktu)
{
lcd.setCursor(0,0);
lcd.print(NamaHari[waktu.dayOfTheWeek()]);
//jam
lcd.setCursor(0,1);
lcd.print(waktu.hour());
lcd.setCursor(2,1);
lcd.print(":");
lcd.setCursor(3,1);
lcd.print(waktu.minute());
lcd.setCursor(5,1);
lcd.print(":");
lcd.setCursor(6,1);
lcd.print(waktu.second());
sprintf (buffer, "%s %02d/%02d/%4d",NamaHari[waktu.dayOfTheWeek()],waktu.day(),waktu.month(),waktu.year() );
lcd.setCursor(0,2);
lcd.print(buffer);
sprintf (buffer, "%02d:%02d:%02d",waktu.hour(),waktu.minute(),waktu.second() );
lcd.setCursor(0,3);
lcd.print(buffer);
}
void tampil_serial(DateTime waktu)
{
sprintf (buffer, "%s %02d/%02d/%4d",NamaHari[waktu.dayOfTheWeek()],waktu.day(),waktu.month(),waktu.year() );
Serial.print(buffer);
sprintf (buffer, " %02d:%02d:%02d",waktu.hour(),waktu.minute(),waktu.second() );
Serial.println(buffer);
}
void setup()
{
Serial.begin(9800);
lcd_setup();
rtc_setup();
}
void loop()
{
DateTime waktu=rtc.now();
tampil_waktu(waktu);
tampil_serial(waktu);
delay(1000);
}