Đây là code full giao tiếp giữa realTimeClock: ic thời gian thực DS1307 hoăc BQ32000 với board mạch nhúng Arduino Uno R3. Đầy đủ chức năng như hẹn giờ lưu vào eeprom, setting thời gian, ngày giờ. Có nút display để hiển thị thông tin: time, date, hoặc các cảm biến khác nếu muốn sử dụng các chức năng khác.
Kĩ Thuật Máy Tính Đại Học Cần Thơ Lập Trình Giao Tiếp Board Mạch Nhúng Arduino Uno R3 Và Module Thời Gian Thực DS1307 Hay BQ32000 Ứng Dụng Vào Điều Khiển Tự Động Bằng Thời Gian Thực Email: nguyenbinhnhanct@gmail.com Sđt: 01686648144 CODE //============================== //Khai Bao Thu Vien: #include "Wire.h" #define DS1307_I2C_ADDRESS 0x68 #include #include //============================== //============================== //Lcd 1602: LiquidCrystal lcd(8, 9, 4, 5, 6, 7); //============================== //================================================================= ==================================================== //KHAI BAO BIEN TOAN CUC: Nguyễn Bỉnh Nhân Kĩ Thuật Máy Tính Đại Học Cần Thơ //============================== //bien luu gia tri eeprom: int addr = 0; //bat dau tai vi tri o nho thu 0: //mang luu gia tri set bao thuc: char value_alarm[4]; //============================== //bien dem so lan nhan keypad: int set=0; //============================== //Bien dem so lan nhan nut display: int dem_key=0; //============================== //BIEN Define Cho Button: const int mode_button = 12; const int tang_button = 11; const int giam_button = 10; const int display_button = 3; const int bao_thuc = 13; //co the thay doi pin y: //============================== //Bien Luu Hieu Chinh Thoi Gian: int sogio=0, sophut=0; //============================== Nguyễn Bỉnh Nhân Kĩ Thuật Máy Tính Đại Học Cần Thơ //============================== //Bien Luu Hieu Chinh Date: int setday=00, setmonth=00, setyear=00; //============================== //BIEN Thoi gian: Set Lai Time, Bien Time: int SetTime = 0;//Set this variable to to set the time without a button float timezone = -5;//Give your timezone here for double checking against GMT byte Set_Second = 0; byte Set_Minute = 53; byte Set_Hour = 11; byte Set_DayOfMonth = 22; byte Set_Month = 7; byte Set_Year = 12; byte Set_DayOfWeek = 1; byte secondRTC, minuteRTC, hourRTC, dayOfWeekRTC, dayOfMonthRTC, monthRTC, yearRTC; //Bien cac gia tri Time va Date: //================================================================= ==================================================== //================================================================= ==================================================== //HAM DELAY: Nguyễn Bỉnh Nhân Kĩ Thuật Máy Tính Đại Học Cần Thơ void delayInMillis(long delayInMicrosec){ long t1,t2; t1=millis(); t2=millis(); while ((t1+delayInMicrosec)>t2){ t2=millis(); if (t259) sogio=0; } //Neu Nhan Phim giam: if(digitalRead(giam_button)==LOW){ delay(100); sogio = sogio - 1; if(sogio 59) sophut=0; } 18 Nguyễn Bỉnh Nhân Kĩ Thuật Máy Tính Đại Học Cần Thơ //Neu Nhan Phim giam: if(digitalRead(giam_button)==LOW){ delay(150); sophut = sophut - 1; if(sophut 31) dayOfMonthRTC=0; } //Neu Nhan Phim giam: if(digitalRead(giam_button)==LOW){ 19 Nguyễn Bỉnh Nhân Kĩ Thuật Máy Tính Đại Học Cần Thơ delay(100); dayOfMonthRTC = dayOfMonthRTC - 1; if(dayOfMonthRTC 12) monthRTC=1; } //Neu Nhan Phim giam: if(digitalRead(giam_button)==LOW){ 20 Nguyễn Bỉnh Nhân Kĩ Thuật Máy Tính Đại Học Cần Thơ delay(100); monthRTC = monthRTC - 1; if(monthRTC 100) yearRTC=1; } //Neu Nhan Phim giam: if(digitalRead(giam_button)==LOW){ delay(100); 21 Nguyễn Bỉnh Nhân Kĩ Thuật Máy Tính Đại Học Cần Thơ yearRTC = yearRTC - 1; if(yearRTC