Hiển Thị Thời Gian Thực (RTC DS1307) Lên LCD16x2 Bằng Giao Tiếp I2C

Đã được đăng vào 11/12/2019 @ 12:00

Hiển thị thời gian thực (RTC DS1307) lên LCD16x2 bằng giao tiếp I2C trong môi trường Arduino 

Mục lục hiện Hiển thị thời gian thực (RTC DS1307) lên LCD16x2 bằng giao tiếp I2C trong môi trường Arduino Hiển thị thời gian thực lên LCD16x2 sử dụng module RTC DS1307 Linh kiện cần thiết cho dự án Thư viện Code mẫu Giải thích code

Ở bài viết hôm trước mình đã hướng dẫn các bạn cách sử dụng Module thời gian thực DS1307 và cách hiển thị ký tự lên màn hình LCD 16×2 bằng giao tiếp I2C.

Tiếp tục trong chuỗi bài viết về LCD hôm nay mình sẽ hướng dẫn các bạn làm thế nào để hiển thị thời gian lên LCD16x2.

Để hiểu hơn về bài viết hôm nay các bạn đọc lại bài viết bên dưới rồi chúng ta tiếp tục nha.

  • Đọc thêm: Tổng quan LCD 16×2 và giao tiếp I2C LCD sử dụng Arduino
  • Đọc thêm: Đồng hồ thời gian thực (Read Time Clock – DS1307) sử dụng Arduino

Hiển thị thời gian thực lên LCD16x2 sử dụng module RTC DS1307

Màn hình LCD 16×2 Arduino UNO R3
GND GND
VCC 5V
SDA A4/SDA
SCL A5/SCL
Module RTC DS1307  
GND GND
VCC 5V
SDA A4/SDA
SCL A5/SCL

Linh kiện cần thiết cho dự án

Tên linh kiện Số lượng
Arduino Uno R3 1
Module RTC DS1307 1
Màn hình LCD 16×2 1
Module I2C LCD 16×2 1
Dây cắm 1

Thư viện

  • Thư viện hỗ trợ sử dụng module RTC DS1307: Tải ngay.
  • Thư viện hỗ trợ sử dụng màn hình LCD I2C: Tải ngay.

Code mẫu

#include <Wire.h> #include <LiquidCrystal_I2C.h> #include "RTClib.h" RTC_DS1307 rtc; LiquidCrystal_I2C lcd(0x3F,16,2); char daysOfTheWeek[7][12] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; void setup () { Serial.begin(9600); lcd.init(); lcd.backlight(); if (! rtc.begin()) { lcd.print("Couldn't find RTC"); while (1); } if (! rtc.isrunning()) { lcd.print("RTC is NOT running!"); } rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));//auto update from computer time //rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));// to set the time manualy } void loop () { DateTime now = rtc.now(); lcd.setCursor(4, 1); if(now.hour()<=9) { lcd.print("0"); lcd.print(now.hour()); } else { lcd.print(now.hour()); } lcd.print(':'); if(now.minute()<=9) { lcd.print("0"); lcd.print(now.minute()); } else { lcd.print(now.minute()); } lcd.print(':'); if(now.second()<=9) { lcd.print("0"); lcd.print(now.second()); } else { lcd.print(now.second()); } lcd.print(" "); lcd.setCursor(1, 0); lcd.print(daysOfTheWeek[now.dayOfTheWeek()]); lcd.print(","); if(now.day()<=9) { lcd.print("0"); lcd.print(now.day()); } else { lcd.print(now.day()); } lcd.print('/'); if(now.month()<=9) { lcd.print("0"); lcd.print(now.month()); } else { lcd.print(now.month()); } lcd.print('/'); if(now.year()<=9) { lcd.print("0"); lcd.print(now.year()); } else { lcd.print(now.year()); } }

Giải thích code

Trong bài viết Đồng hồ thời gian thực (Read Time Clock – DS1307) sử dụng Arduino mình đã giải thích rất chi tiết cách hoạt động của hàm các bạn xem lại bài viết để có thể hiểu hơn nhé.

Nguồn: arduinokit.vn

  • Share on Facebook
  • Tweet on Twitter

Từ khóa » Thư Viện Ds1307