ĐỒNG HỒ THỜI GIAN THỰC DS1307 ARDUINO

Trong nội dung bài viết này, chúng ta vẫn mày mò về đồng hồ thời hạn thực (RTC – Real Time Clock) và giải pháp tiếp xúc Arduino cùng với module thời hạn thực DS1307.

Bạn đang xem: Đồng hồ thời gian thực ds1307 arduino

Đồng hồ nước thời gian thực tốt RTC (Real Time Clock) là 1 lắp thêm định thời hạn, hay được sản xuất dưới dạng IC. IC RTC chạy bởi pin cùng quan sát và theo dõi thời gian hiện tại ngay cả khi không có điện.

IC đồng hồ đeo tay thời hạn thực có mặt trong máy vi tính, máy chủ (server), những hệ thống nhúng cùng trên thực tiễn, chúng được thực hiện ở bất kể đâu, rất nhiều chỗ nên biết tin thời gian đúng đắn.


Nội dung bài bác viết

Giới thiệu IC thời gian thực DS1307Giao tiếp Arduino cùng với DS1307

Tại sao bọn họ bắt buộc đồng hồ thời hạn thực (RTC)?

Mặc cho dù Arduino với hầu như tất cả các cỗ vi tinh chỉnh đều phải có cỗ định thời (timer) với cỗ định thời gian (hàm millis () vào trường vừa lòng Arduino) tuy nhiên chúng phụ thuộc vào vào nguồn điện áp, có nghĩa là chúng chỉ vận động khi bao gồm mối cung cấp hỗ trợ. Sau lúc tắt mối cung cấp (Theo phong cách bằng tay thủ công hoặc vì mất điện), toàn bộ bộ định giờ đồng hồ được reset về 0.

Mặc dù câu hỏi định thời gian bằng bộ định thời tích hòa hợp sẵn được đồng ý cho những áp dụng đơn giản và dễ dàng, dẫu vậy một số trường đúng theo không giống bọn họ buộc phải một giải pháp thay thế sửa chữa trong những vận dụng nlỗi bộ ghi dữ liệu, đồng hồ, báo thức, v.v.. trong các số đó cỗ đếm thời gian chạy độc lập bất kỳ nguồn điện áp phía bên ngoài hoặc giả dụ bộ vi tinh chỉnh và điều khiển (hoặc Arduino) được lập trình sẵn lại.

khi kể tới vấn đề sử dụng IC thời hạn thực. Hầu không còn toàn bộ các IC RTC hầu như là các vật dụng dòng năng lượng điện thấp chạy trong nhiều năm bên trên một pin lithium độc nhất vô nhị (thường là CR2032). Một trong những IC RTC thông dụng và được áp dụng thịnh hành tuyệt nhất là DS1307.

Giới thiệu IC thời gian thực DS1307

IC thời gian thực (RTC) DS1307 có chức năng báo tin thời gian hiện nay (thời gian thực): giờ, phút ít, giây, sản phẩm công nghệ, ngày tháng, năm một giải pháp đúng chuẩn trong cả Lúc lắp thêm đã bị tắt (ngắt năng lượng điện ngoài). Giao tiếp với vi tinh chỉnh và điều khiển thông qua chuẩn I2C, với nhập vai trò là slave sầu Khi kết nối đến bus I2C này. cũng có thể đếm thời gian theo định dạng 24 tiếng hoặc 12 tiếng đồng hồ với thông tư AM/PM. Bên cạnh đó bên phía trong chíp có cỗ dò phạt hiện mất nguồn cùng tự động hóa gửi quý phái áp dụng mối cung cấp pin dự phòng. Một số anh tài khá nổi bật của IC RTC DS1307 được đề cập dưới đây.

Lưu trữ với hỗ trợ các lên tiếng thời gian thực:ngày, tháng, năm, giờ đồng hồ, phút ít, giây,…Khả năng cấu hình thiết lập ngày cho năm 2100.Tiêu thú năng lượng điện năng thấp: cái tiêu thụ dưới 500nA Lúc vận động bởi pin.Tự đụng đưa sang nguồn pin vào trường đúng theo mất năng lượng điện.Đồng hồ nước 24 tiếng hoặc 12 tiếng đồng hồ cùng với chỉ báo AM/PM.Sử dụng chuẩn chỉnh tiếp xúc I2C.

Download datasheet DS1307 tại đây.

RTC DS1307 có sẵn dưới dạng module, bao gồm toàn bộ những yếu tố cần thiết nhỏng pin, đầu nối, năng lượng điện trsinh sống vuốt lên và tinh thể thạch anh. Một module điều này được sử dụng vào bài bác hướng dẫn này với được hiển thị bên dưới.

*

ChânTênChức năng
1X1Đây là các chân liên kết cùng với thạch anh tần số 32.768 KHz nhằm kích hoạt cỗ xấp xỉ nội.

Xem thêm: Hướng Dẫn Cách Tháo Chốt Đồng Hồ Đeo Tay Dễ Dàng Tại Nhà, Hướng Dẫn Cách Tháo Núm Đồng Hồ Đeo Tay Đơn Giản

2X2
3VBATChân này được kết với cực dương pin Lithium 3V để cấp cho mối cung cấp nuôi dự phòng
4GNDChân nối đất
5SDAChân dữ liệu thông suốt (Serial Data). Đây là chân tài liệu vào/ra của giao thức I2C. Chân này nên gửi lên nguồn 5V trải qua năng lượng điện trlàm việc 10kΩ
6SCLChân nguồn vào xung đồng hồ đeo tay tiếp nối (Serial Clock). Đây là chân ngõ vào xung nhịp của giao thức I2C. Chân này cũng cần được kéo cho 5V thông qua một điện trlàm việc 10kΩ.
7SQW/OUTNgõ xuất ra xung vuông, tần số rất có thể xây dựng nhằm thay đổi trường đoản cú 1Hz, 4Khz, 8Khz, 32Khz. Nếu không được sử dụng, chân này hoàn toàn có thể được thả nổi.
8VCCChân cấp nguồn thiết yếu, khoảng tầm 5VDC. Nếu VCC không tồn tại nhưng VBAT tất cả thì DS1307 vẫn vận động bình thường nhưng lại không ghi với gọi được dữ liệu.

Giao tiếp Arduino với DS1307

Linc khiếu nại đề xuất thiết
STTTên linc kiệnSố lượng
1Arduino Uno1
2Module RTC DS13071
3LCD 16×21
4Breadboard1
5Dây cắn breadboard
6Nguồn cấp điện

Chúng ta đã tò mò một chút ít về IC thời gian thực DS1307. Bây giờ, họ đã thực hiện với tiếp xúc Arduino cùng với IC thời hạn thực. Như vẫn đề cập trước đó, module DS1307 RTC sử dụng giao tiếp I2C.

Trong mạch giao tiếp này, vi điều khiển và tinh chỉnh Arduino luôn hoạt động nhỏng Master với DS1307 vận động nlỗi Slave. Master trong tiếp xúc I2C, Có nghĩa là Arduino trong ngôi trường đúng theo này, Chịu trách nát nhiệm về dấu hiệu đồng hồ đeo tay, truy cập bus, các biểu đạt start với stop.

Sơ thiết bị nguyên ổn lý

Bức Ảnh tiếp sau đây cho thấy sơ trang bị mạch giao tiếp giữa IC thời hạn thực DS1307 và Arduino. Mạch này cho thấy các kết nối cơ bạn dạng liên quan mang lại module DS1307 (một board mạch chứa IC DS1307 cùng rất thạch anh, pin, điện trsinh sống đẩy lên, ..).

*

Hoạt động của mạch

Một ứng dụng đơn giản dễ dàng trong số ấy Arduino UNO được giao tiếp với module thời gian thực DS1307 để hiển thị thì giờ lên screen LCD. Trong áp dụng này, họ sẽ lập trình mang lại DS1307 RTC cùng với thì giờ hiện giờ cùng coi liệu nó bao gồm thực sự giữ lại tài liệu đó hay không ngay cả lúc mối cung cấp cung cấp mang lại Arduino bị loại quăng quật.

Một tlỗi viện đặc biệt được gọi là “RTClib” được áp dụng vào công tác. Các bạn có thể cài xuống tự link này. Đảm nói rằng thỏng viện được cài đặt xuống trước và được thêm vào các đại lý dữ liệu thỏng viện Arduino.

Để hấp thụ dữ liệu với thời hạn vào IC DS1307 RTC, bọn họ sẽ sử dụng một khả năng bao gồm sẵn vào thỏng viện RTClib, vị trí Arduino đã tải ngày và giờ từ bỏ laptop lên ngay khi chương trình được hấp thụ vào.

Cmùi hương trình

// Cmùi hương trình hiển thị thời gian thực trên LCD cần sử dụng module RTC DS1307

#include

#include

#include “RTClib.h”

RTC_DS1307 rtc;

LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (rs, e, d4, d5, d6, d7)

char daysOfTheWeek<7><12> = “Sun”, “Mon”, “Tue”, “Wed”, “Thu”, “Fri”, “Sat”;

void thiết đặt ()

Serial.begin(9600);

lcd.begin(16, 2);

if (! rtc.begin())

lcd.print(“Khong the tlặng cụ RTC”);

while (1);

if (! rtc.isrunning())

lcd.print(“RTC khong hoat dong!”);

rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));

//rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));

void loop ()

DateTime now = rtc.now();

lcd.setCursor(0, 1);

lcd.print(now.hour());

lcd.print(‘:’);

lcd.print(now.minute());

lcd.print(‘:’);

lcd.print(now.second());

lcd.print(” “);

lcd.setCursor(0, 0);

lcd.print(daysOfTheWeek);

lcd.print(” ,”);

lcd.print(now.day());

lcd.print(‘/’);

lcd.print(now.month());

lcd.print(‘/’);

lcd.print(now.year());

Ứng dụng

Với sự hỗ trợ của giao tiếp đồng hồ đeo tay thời gian thực và Arduino, chúng ta có thể tiến hành một số vận dụng tương quan mang lại ghi tài liệu, báo thức, đồng hồ, v.v.Vì module RTC DS1307 được cung ứng cấp cho mối cung cấp bằng pin vì thế nó đang liên tục gia hạn thời hạn ngay cả vào ngôi trường đúng theo mất năng lượng điện.