Trao đổi về bài tập I2C

2death

Cố Vấn CLB
Staff member
tình hình là khi cắm cả 2 jump JP_VCC và JP_GND thì đọc và ghi dữ liệu cho DS1307 tốt nhưng DS nóng. Còn chỉ cắm jump JP_VCC thì chỉ đọc được dữ liệu từ DS1307 về VĐK chứ không ghi được- DS1307 không nóng. Và mình không thể set được thanh ghi năm
2 module dùng trong bài I2C vốn độc lập với nhau. Module DS1307 và module TRIAC.

+ Nếu chỉ giao tiếp Ds1307, ko kích tải AC, thì bạn không cần phải gắn jumper nào hết.
(tất nhiên là vẫn cấp nguồn 5V cho DS1307 hoạt động nhé :D)

+ 2 Jumper VCC và GND có tác dụng: lấy luôn phần nguồn 5Vdc và Gnd từ phía module ds1307 để cấp nguồn cho mạch Triac.

Đúng ra, phần mạch kích cho Triac nên được cách ly với phần mạch điều khiển (PIC và ds1307). Nếu có nguồn cách ly, thì bạn sẽ cấp nguồn 5V+GND khác cho mạch kích triac.
Còn trong trường hợp ko có nguồn cách ly, thì bạn nối 2 cái jmuper để lấy nguồn từ phía điều khiển cấp cho Triac luôn.
 

honghiep

Cố Vấn CLB
Staff member
dạ là khi em cấp nguồn 5v(cả VCC và GND) cho ds1307 thì nó nóng. còn khi chỉ cắm VCC không thì chỉ đọc được dữ liệu từ ds1307 chứ không truyền được dữ liệu từ VĐK xuống ds1307
 

honghiep

Cố Vấn CLB
Staff member
Em đã giải quyết được vấn đề. Cảm ơn mọi người
 

honghiep

Cố Vấn CLB
Staff member
Vấn đề là dòng ra của 7805 lớn nên ds1307 chịu không nổi
 

tranhieu_hcmut

Cố Vấn CLB
Staff member
Vấn đề là dòng ra của 7805 lớn nên ds1307 chịu không nổi
Chuyện này không xảy ra đâu nha e...Nguyên nhân của e nó nằm ở đâu chứ nguyên nhân này thì ko phải. Bây giờ e dùng nguồn 5V 20A cấp cho DS1307 thì cũng vậy thôi
 

honghiep

Cố Vấn CLB
Staff member
tại khi em dùng 1 con trở mắc trước chân VCC của DS1307 thì không có vấn đề gì nữa. hoặc trước khi gắn thêm trở, khi em tháo pin lithium ra rồi cắm nguồn cho ds1307 thì cũng không bị nóng
 

longkod

Trứng gà


Cho mình hỏi là mình hàn con DS1307 và nối chân như hình thì có bị nhiễu không? Vì hiện tại LCD nó vẫn chưa hiển thị được :|
(DS1307 nằm ở góc dưới bên phải)
 
mạch của bạn vẽ bị sai rồi. hai điện trở ở hai chân Data và CLK của chuẩn I2C được kéo lên Vcc chứ không phải mắc như bạn. và khi vẽ thì nên cho hai chân này đi sát nhau để tránh nhiễu.
 

longkod

Trứng gà
Cho mình hỏi là 2 chân SCL và SDA nằm ở RC3 và RC4 đối diện nhau thì sao đi sát nhau được nhỉ? Hay là mình phải nối kéo dài ra?
Mà theo mình nghĩ thì dây càng dài càng bị nhiễu chứ nhỉ :-?
 

tringuyen

Trứng gà
Chào bạn Phương Tuấn,
Code của bạn mình mô phỏng không chạy, bạn xem lại giup mình nhé, hình như trong hàm main thiếu hàm read_time(); mình có thêm vào nhưng LCd vẫn không hiển thị. Bỏ các hàm nút nhấn thì hiển thị được nhưng chỉ toàn hiển thị 00 00 00 thôi.
theo mình thì khi mô phỏng trong proteus thì 2 điện trở kéo phải chọn là digital. Good luck.
 
Top