#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4); // set the LCD address to 0x27 for a 16 chars and 2 line display
#include <Wire.h>
#include <I2C_RTC.h>
static DS1307 RTC;
char* week[] = {"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"};
void setup()
{
Serial.begin(9600);
lcd.init();
lcd.backlight();
RTC.begin();
RTC.setHourMode(CLOCK_H24);
/*RTC.setWeek(2);
RTC.setDate(28,8,23);
RTC.setTime(23,29,00);*/
}
void loop()
{
// Menampilkan tanggal di serial monitor
Serial.print(week[RTC.getWeek()]);
Serial.print(",");
if(RTC.getDay() < 10)
{
Serial.print("0");
}
Serial.print(RTC.getDay());
Serial.print("-");
if(RTC.getMonth() < 10)
{
Serial.print("0");
}
Serial.print(RTC.getMonth());
Serial.print("-");
Serial.print(RTC.getYear());
Serial.print(" ");
// Menampilkan tanggal di LCD
lcd.setCursor(3,0);
lcd.print(week[RTC.getWeek()]);
lcd.print(",");
if(RTC.getDay() < 10)
{
lcd.print("0");
}
lcd.print(RTC.getDay());
lcd.print("-");
if(RTC.getMonth() < 10)
{
lcd.print("0");
}
lcd.print(RTC.getMonth());
lcd.print("-");
lcd.print(RTC.getYear());
// Menampilkan waktu di serial monitor
if(RTC.getHours() < 10)
{
Serial.print("0");
}
Serial.print(RTC.getHours());
Serial.print(":");
if(RTC.getMinutes() < 10)
{
Serial.print("0");
}
Serial.print(RTC.getMinutes());
Serial.print(":");
if(RTC.getSeconds() < 10)
{
Serial.print("0");
}
Serial.print(RTC.getSeconds());
Serial.println(" ");
// Menampilkan waktu di LCD
lcd.setCursor(6,1);
if(RTC.getHours() < 10)
{
lcd.print("0");
}
lcd.print(RTC.getHours());
lcd.print(":");
if(RTC.getMinutes() < 10)
{
lcd.print("0");
}
lcd.print(RTC.getMinutes());
lcd.print(":");
if(RTC.getSeconds() < 10)
{
lcd.print("0");
}
lcd.print(RTC.getSeconds());
}