#include <RTClib.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
const int buttonPin = 2;
int buttonState = 0;
bool lcdOn = true;
RTC_DS1307 RTC;
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
Serial.begin(9600);
RTC.begin();
lcd.init();
lcd.backlight();
pinMode(buttonPin, INPUT_PULLUP);
if (!RTC.begin()) {
Serial.println("Tidak dapat menemukan RTC");
while (1);
}
if (!RTC.isrunning()) {
Serial.println("RTC tidak berjalan");
RTC.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
}
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState == LOW) {
lcdOn = !lcdOn;
delay(500);
if (lcdOn) {
lcd.backlight();
} else {
lcd.noBacklight();
lcd.clear();
}
}
if (lcdOn) {
DateTime now = RTC.now();
lcd.setCursor(0, 0);
lcd.print("Date: ");
lcd.print(now.day());
lcd.print("/");
lcd.print(now.month());
lcd.print("/");
lcd.print(now.year());
lcd.setCursor(0, 1);
lcd.print("Time: ");
lcd.print(now.hour());
lcd.print(":");
if (now.minute() < 10) {
lcd.print("0"); }
lcd.print(now.minute());
lcd.print(":");
if (now.second() < 10) {
lcd.print("0"); }
lcd.print(now.second());
}
}