Module thời gian thực DS1307 là module lưu trữ và tự động đếm thời gian theo thời gian thực. Sử dụng IC DS1307 giao tiếp qua I2C, các dòng vi điều khiển và Arduino có thể truy xuất thời gian của module được thuận thiện và dễ dàng hơn bao giờ hết. Module còn được nuôi bởi pin CR2032 giúp cho module có thời gian hoạt động lên đến hơn 1 năm nếu bị mất điện nguồn. Bạn hoàn toàn có thể an tâm rằng thời gian trong đồng hồ DS1307 vẫn chạy khi bị mất điện nhé.

Bạn đang xem: Ds1307 là gì

RTC là gì?

RTC là viết tắt của từ “Real Time Clock” – đồng hồ thời gian thực. Chức năng của nó là gì? Nó giúp chúng ta theo dõi thời gian hiện tại (thời gian thực) với độ chính xác cao ngay cả khi thiết bị đã bị tắt (ngắt điện ngoài). RTC được ứng dụng nhiều trong các thiết bị điện tử, bao gồm máy tính, điện thoại thông minh, v.v. RTC theo dõi thời gian bằng bộ dao động tinh thể – thạch anh, thường có tần số 32.768 kHz.
Dễ dàng cài đặtTiêu thụ điện năng thấp (sử dụng pin CR2032 lên đến 1 năm)Thời gian chính xác

Linh kiện cần thiết

JDây cắm

Nối dây

Do cả Màn hình LCD và module RTC đều sử dụng phương thức giao tiếp I2C, chúng ta có thể nối chung chân SCL và SDA trên arduino. Cả hai module được cấp nguồn 5V.

Xem thêm: Bolero Là Gì – Nhạc Tìm Hiểu Về Dòng Nhạc Bolero

*

*

Thư viện

Bạn cần add 3 thư viện trên vào arduino trước khi nạp code mẫu. LiquidCrtystal_I2C dùng để giao tiếp với LCD qua I2C, RTCLib để giao tiếp với DS1307, Time-master để xử lý dữ liệu ngày-tháng-năm và giờ-phút-giây.

Code mẫu

Dòng RTC.adjust () sẽ cài đặt lại ngày và giờ hiện tại của RTC. Nếu không cần bạn có thể comment dòng này.

Xem thêm: Rơ Le Là Gì – Cấu Tạo Chức Năng Và Công Dụng

#include #include “RTClib.h”#include RTC_DS1307 RTC;LiquidCrystal_I2C lcd(0x3F,16,2);void setup () { Serial.begin(9600); lcd.init(); lcd.begin(16,2); Wire.begin(); RTC.begin(); if (! RTC.isrunning()) { Serial.println(“RTC is NOT running!”); RTC.adjust(DateTime(F(__DATE__), F(__TIME__))); }}void loop () { DateTime now = RTC.now(); lcd.setCursor(0,0); lcd.print(“TIME: “); lcd.print(now.hour(), DEC); lcd.print(“:”); lcd.print(now.minute(), DEC); lcd.print(“:”); lcd.print(now.second(), DEC); lcd.setCursor(0,1); lcd.print(“DATE: “); lcd.print(now.year(), DEC); lcd.print(“/”); lcd.print(now.month(), DEC); lcd.print(“/”); lcd.print(now.day(), DEC); delay(100); 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(); delay(1000);}Bạn có thể lập trình Arduino dựa trên visual studio code vì nó có thể nhắc bạn những dòng lệnh một cách chính xác hơn. Bạn không cần phải nhớ tất cả các câu lệnh. Tham khảo thêm bài viết tại đây.

Chuyên mục: Hỏi Đáp