#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
//---------------------------------------------------------
#include "RTClib.h"
RTC_DS1307 RTC;
#define adjustRtc 12 // if this pin=low update rtc from pc clock
void setup () {
Serial.begin(115200);
Wire.begin();
RTC.begin();
if (! RTC.isrunning()) {
Serial.println("RTC is NOT running!");
// following line sets the RTC to the date & time this sketch was compiled
RTC.adjust(DateTime(__DATE__, __TIME__));}
//---------------------------------------------------------------------------------
lcd.init();
lcd.backlight();
lcd.clear();
lcd.print(" hello ");
delay(2000);
lcd.setCursor(0,1);
lcd.print("____________ ");
delay(2000);
lcd.clear();
lcd.home();
delay(100);
pinMode(12,INPUT_PULLUP);
}
void loop () {
if(digitalRead(adjustRtc)==0)
{ delay(100);
RTC.adjust(DateTime(__DATE__, __TIME__));
}
DisplayDateTime();
DateTime now = RTC.now();
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(' ');
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
}
void DisplayDateTime()
{
DateTime now = RTC.now();
lcd.setCursor(0, 1);
lcd.print("Clock:");
lcd.print(now.hour()/10);
lcd.print(now.hour() % 10);
lcd.print(":");
lcd.print( now.minute() / 10);
lcd.print( now.minute() % 10);
lcd.print(":");
lcd.print( now.second() / 10);
lcd.print( now.second() % 10);
lcd.setCursor(0, 0);
lcd.print("Date:");
lcd.print(now.day()/10);
lcd.print(now.day() % 10);
lcd.print("/");
lcd.print( now.month() / 10);
lcd.print( now.month() % 10);
lcd.print("/");
lcd.print( now.year() / 10);
lcd.print( now.year() % 10);
}