Mục lục:

Đồng hồ thời gian thực DS1307 RTC với Arduino: 4 bước
Đồng hồ thời gian thực DS1307 RTC với Arduino: 4 bước

Video: Đồng hồ thời gian thực DS1307 RTC với Arduino: 4 bước

Video: Đồng hồ thời gian thực DS1307 RTC với Arduino: 4 bước
Video: 🔴 Arduino #28 | Đồng Hồ Thời Gian Thực DS1302 | DS1302 Real Time Clock 2024, Tháng Chín
Anonim
Đồng hồ thời gian thực DS1307 RTC với Arduino
Đồng hồ thời gian thực DS1307 RTC với Arduino

Trong Hướng dẫn này, chúng ta sẽ tìm hiểu về Đồng hồ thời gian thực (RTC) và cách kết hợp Arduino & IC đồng hồ thời gian thực DS1307 lại với nhau như một thiết bị định thời.

Đồng hồ thời gian thực (RTC) được sử dụng để theo dõi thời gian và duy trì lịch. Để sử dụng RTC, trước tiên chúng ta cần lập trình nó với ngày và giờ hiện tại. Khi điều này được thực hiện, các thanh ghi RTC có thể được đọc bất kỳ lúc nào để biết ngày giờ. DS1307 là một RTC hoạt động trên giao thức I2C. Dữ liệu từ các thanh ghi khác nhau có thể được đọc bằng cách truy cập địa chỉ của chúng để đọc bằng cách sử dụng giao tiếp I2C.

Bước 1: Những thứ bạn cần

Những thứ bạn cần
Những thứ bạn cần
Những thứ bạn cần
Những thứ bạn cần
Những thứ bạn cần
Những thứ bạn cần

Đây là những thứ bạn cần đối với tài liệu hướng dẫn này:

Arduino una

Mô-đun rtc Ds1307

Dây nhảy

Ô đồng xu 3.7v

Bước 2: Kết nối

Kết nối
Kết nối
Kết nối
Kết nối

Vui lòng làm theo các sơ đồ đính kèm trong phần hình ảnh và kết nối mọi thứ Theo các sơ đồ.

Bước 3: Phần mã hóa

Phần mã hóa
Phần mã hóa

Lập trình Arduino để cung cấp RTC với ngày và giờ hiện tại; và đọc ngày và giờ từ RTC.

Ở đây, chúng tôi sẽ sử dụng thư viện DS1307 của Watterott từ GitHub.

Tải xuống thư viện này từ đây.:

Giải nén thư viện và thêm thư mục có tên DS1307 vào đường dẫn thư mục thư viện của Arduino IDE.

Khi thư viện đã được thêm vào Arduino IDE, hãy mở IDE và mở bản phác thảo mẫu có tên là Ví dụ từ thư viện DS1307 đã được thêm vào.

Lời cảnh báo: Trong bản phác thảo ví dụ, trong vòng lặp thiết lập, hàm rtc.set () được sử dụng. Chuyển các đối số ngày và giờ hiện tại như đã đề cập vào hàm này. Trong bản phác thảo ví dụ, câu lệnh này sẽ được bình luận. Bỏ ghi chú nó và tải lên bản phác thảo. Sau khi bản phác thảo được tải lên, hãy bỏ ghi chú lại câu lệnh và tải bản phác thảo lên. Nếu điều này không được thực hiện, mỗi lần bảng Arduino UNO đặt lại hoặc bật nguồn sau khi tắt nguồn, ngày và giờ bạn đặt sẽ được đặt lặp đi lặp lại và bạn sẽ không thể đọc chính xác ngày và giờ hiện tại.

/ * DS1307 RTC (Real-Time-Clock) Ví dụ

Uno A4 (SDA), A5 (SCL) Mega 20 (SDA), 21 (SCL) Leonardo 2 (SDA), 3 (SCL) * /

#include "Wire.h"

#include "DS1307.h"

DS1307 rtc;

void setup () {/ * init Cổng nối tiếp * / Serial.begin (9600); while (! nối tiếp); / * đợi cổng nối tiếp kết nối - chỉ cần cho Leonardo * /

/ * init RTC * / Serial.println ("Init RTC…");

/ * chỉ đặt ngày + giờ một lần * / rtc.set (0, 0, 8, 24, 12, 2014); / * 08: 00: 00 24.12.2014 // giây, phút, giờ, ngày, tháng, năm * /

/ * dừng / tạm dừng RTC * / // rtc.stop ();

/ * bắt đầu RTC * / rtc.start (); }

void loop () {uint8_t sec, min, giờ, ngày, tháng; uint16_t năm;

/ * lấy thời gian từ RTC * / rtc.get (& giây, & phút, & giờ, & ngày, & tháng, & năm);

/ * đầu ra nối tiếp * / Serial.print ("\ n Thời gian:"); Serial.print (giờ, DEC); Serial.print (":"); Serial.print (tối thiểu, DEC); Serial.print (":"); Serial.print (giây, DEC);

Serial.print ("\ nDate:"); Serial.print (ngày, DEC); Serial.print ("."); Serial.print (tháng, DEC); Serial.print ("."); Serial.print (năm, DEC);

/ * chờ một giây * / delay (1000); }

Sao chép đoạn mã trên và tải nó lên Bảng arduino của bạn

Bước 4: Nhận thời gian

Nhận thời gian
Nhận thời gian
Nhận thời gian
Nhận thời gian

Sau khi kết nối mọi thứ với nhau và tải mã lên bảng arduino của bạn, hãy mở màn hình nối tiếp trong arduino Ide của bạn và sau đó bạn sẽ có thể lấy ngày và giờ như của tôi trong màn hình nối tiếp của bạn vì bạn có thể thấy tôi có thể xem Thời gian & ngày trong màn hình nối tiếp của tôi, để có đầu ra demo, vui lòng tham khảo đầu ra hình ảnh ở trên và vui vẻ thêm đồng hồ RTC vào dự án của bạn.

Đề xuất: