#include "RTClib.h"
//#define vcc 15
RTC_DS1307 rtc; //Khởi tạo một đối tượng của thư viện RTClib là rtc
char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday","Thursday", "Friday", "Saturday"}; //Mảng ký tự daysOfTheWeek để lưu trữ thông tin ngày trong tuần
void setup ()
{
//pinMode(vcc,OUTPUT);
//digitalWrite(vcc,HIGH);
Serial.begin(9600); //Tốc độ truyền dữ liệu của Serial được thiết lập là 9600 baud
if (! rtc.begin()) //Kiểm tra xem module RTC có được kết nối hay không
{
Serial.print("Couldn't find RTC"); //Nếu không thì in ra thông báo "Couldn't find RTC" và dừng chương trình
Serial.flush();
while (1) delay(10);
}
if (! rtc.isrunning()) //Kiểm tra xem module RTC có đang hoạt động hay không (đọc các thanh ghi bên trong I2C của DS1307 để kiểm tra xem chip có trả về thời gian hay không)
{
Serial.print("RTC is NOT running!"); //Nếu không hoạt động, in ra thông báo "RTC is NOT running!" và tiếp tục chương trình
Serial.println();
}
rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); //Cập nhật thời gian tự động từ máy tính
//rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
}
void loop ()
{
DateTime now = rtc.now(); //Lấy thời gian hiện tại từ module RTC và lưu vào biến now
Serial.print(now.year()); //In ra năm hiện tại từ đối tượng now của lớp DateTime
Serial.print('/'); //In ra màn hình "/"
Serial.print(now.month()); //In ra tháng hiện tại từ đối tượng now của lớp DateTime
Serial.print('/');
Serial.print(now.day());
Serial.print(' ');
Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
Serial.print(" ");
Serial.print(now.hour());
Serial.print(':');
Serial.print(now.minute());
Serial.print(':');
Serial.print(now.second());
Serial.println();
delay(1000); //Tạo độ trễ 1s
}