Ds1307 là gì

Để hoàn toàn có thể cửa hàng truyền dấn biểu thị cùng với arduino, không những bởi input digital hoặc analog. Chúng ta còn những dạng tiếp xúc cho các mạch như thời hạn thực, cảm ứng góc nghiêng, LCD… Hôm ni, bọn họ thí điểm thực hành giao tiếp I2C cùng với mạch thời gian thực DS1307 để hiểu rõ rộng về loại tiếp xúc này.

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

Giao tiếp I2C

I²C (viết tắt của tự giờ Anh "Inter-Integrated Circuit") là 1 trong một số loại bus thông liền được phát triển vì chưng đơn vị phân phối linh phụ kiện điện tử Philips.

I²C sử dụng hai đường truyền tín hiệu: một đường xung nhịp đồng hồ đeo tay (SCL) cùng một mặt đường tài liệu (SDA). SCL cùng SDA luôn được đẩy lên mối cung cấp bởi một năng lượng điện trsinh sống dàn ra có giá trị giao động 4,7 KOhm. Các cơ chế hoạt động của I²C bao gồm:

• Chế độ chuẩn (standard mode) vận động sinh hoạt vận tốc 100 Kbit/s.

• Chế độ vận tốc phải chăng (low-tốc độ mode) vận động nghỉ ngơi tốc độ 10 Kbit/s.

Xem thêm: Làm Đẹp Với Nha Đam Ngâm Rượu, Nha Đam Ngâm Rượu Có Tác Dụng Gì

Tần số xung nhịp đồng hồ hoàn toàn có thể xuống 0 Hz. I²C thực hiện 7 bit để định thúc đẩy, cho nên vì thế trên một bus hoàn toàn có thể định liên can tới 112 nút, 16 địa chỉ từ lại được thực hiện vào mục đích riêng biệt. Điểm mạnh của I²C chính là năng suất và sự dễ dàng của nó: một khối điều khiển và tinh chỉnh trung vai trung phong rất có thể điều khiển và tinh chỉnh cả một mạng thứ nhưng mà chỉ việc hai lối ra tinh chỉnh. Ban đầu, một số loại bus này chỉ được sử dụng trong số linh kiện điện tử của Philips. Sau kia, vị tính ưu việt với dễ dàng và đơn giản của nó, I²C đã được chuẩn chỉnh hóa và được dùng thoáng rộng trong những module media thông suốt của vi mạch tích hòa hợp thời nay. Vì Arduino đang gồm cung cấp sẵn năng lượng điện trngơi nghỉ vuốt lên nên các bạn chỉ cần liên kết vào phương pháp chân SDA cùng SCL

Có thể phát hiện mọi module sử dụng giao tiếp I2C nlỗi LCD, DS1307, MPU6050… Nhỏng các chúng ta có thể thấy thì vào hình Arduino bao gồm SDA SCL trên chân A4/A5 cùng kế AREF cũng có thể có 2 chân.

*

I2C scanner code

I2C scanner là một trong đoạn code của Arduino IDE để quét những liên quan của module dùng I2C đang được liên kết với Arduino. Vì I2C rất có thể áp dụng được mang lại những module buộc phải bọn họ đề nghị call đúng liên quan nhằm có thể đọc và ghi cho module đó. Dưới đây là code của I2C Scanner:

Sau khi bản thân lắp mạch gồm LCD1206, DS1307 thì Serial monitor đang hiển thị hệ trọng như sau:

*

Real-time Clochồng (RTC)

Trong những loại mainboard thường xuyên sẽ sở hữu được mạch RTC tốt nói một cách khác là mạch thời hạn thực dùng để làm lưu trữ thời hạn. Mạch thực hiện 1 viên pin CMOS có thể sử dụng cho 10 năm để chạy thời gian Lúc trang bị vẫn tắt nguồn. (Mình không chạy thử vụ 10 năm nha :> chỉ là trên lí thuyết). Trong bài này, bọn họ sử dụng mạch DS1307 để đọc cùng ghi thời hạn lên Serial.

Xem thêm: Chia Tay Nói Câu Gì Cho Ngầu Là Gì ? Nghĩa Của Từ Ngầu Ngầu Trong Tiếng Việt

*

Tấm hình DS1307

Chuẩn bị

Arduino UnoRTC DS1307BreadboardDây cắn breadboard

Lắp mạch

Vì DS1307 thực hiện tiếp xúc I2C đề xuất họ sẽ gắn mạch như sau:

*

Thư viện

Để rất có thể sử dụng giao tiếp I2C, họ dùng tlỗi viện Wire.h cùng không phải cài đặt bởi vì đang gồm sẵn trong Arduino IDE

Lập trình

Để chuyển đổi thời hạn các bạn vào Serial monitor thứu tự gõ theo vật dụng từ là Giờ/ phút/ giây/ ngày vào tuần/ ngày/ tháng/ năm những nhau bởi vì vệt cách

Ví dụ: "15 24 30 2 6 7 18" tức là 15:24:30 thứ 2 ngày 6 mon 7 năm 2018

Kết quả

Giải thích

String.indexOf(char)

Để mang địa điểm của kí từ char vào một String

String.substring(start,end)

Lấy quý giá của chuỗi con trong string tự start mang lại end

String.toInt()

Biến thay đổi từ bỏ String sang trọng Int

bcd2dec với dec2bcd

Vì tiếp xúc cùng với I2C chúng ta bắt buộc đúng kiểu dáng dữ liệu cần cần được thay đổi thân những cơ số, trong code sẽ ghi chú rõ.

Wire.begin()

Knhị báo giao tiếp mang đến I2C, cùng với một trong những thư viện đang gồm tích hòa hợp sẵn thì có thể ngoài yêu cầu knhì báo

Wire.beginTransmission(address)

Mở tiếp xúc tới can dự address I2C

Wire.endTransmission(address)

Tương từ với msống thì mình sẽ có ngắt tiếp xúc tới cửa hàng address

Wire.write(byte)

Dùng để ghi vào tkhô nóng ghi của module

Wire.read()

Dùng nhằm hiểu quý giá từ thanh khô ghi

Wire.requestFrom(address, number of byte request)

Yêu cần số byte (number of byte request) tự địa chỉ address của module


Chuyên mục: Công Nghệ 4.0