Mục lục:

Màn hình LCD 5V với Arduino Do 3.3V I2C: 5 bước
Màn hình LCD 5V với Arduino Do 3.3V I2C: 5 bước

Video: Màn hình LCD 5V với Arduino Do 3.3V I2C: 5 bước

Video: Màn hình LCD 5V với Arduino Do 3.3V I2C: 5 bước
Video: ĐỌC GPS NEO 6M DÙNG ARDUINO UNO HIỂN THỊ LCD I2C || READ GPS NEO 6M USE ARDUINO UNO I2C LCD DISPLAY 2024, Tháng bảy
Anonim
Màn hình LCD 5V với Arduino Do 3.3V I2C
Màn hình LCD 5V với Arduino Do 3.3V I2C

Bài đăng này nhằm mục đích giải thích một cách dễ dàng hơn để sử dụng Arduino Due (hoặc bảng 3.3V khác) với Màn hình LCD 16x2 phổ biến với mô-đun bộ điều hợp I2C.

Vấn đề ban đầu là LCD cần 5V để đèn nền của nó hoạt động bình thường, nhưng các chân SCL và SDA phải hoạt động ở 3.3V để giao tiếp với Arduino Due mà không gây hại. Để giải quyết vấn đề này, tôi đã tìm thấy hai tùy chọn:

Giải pháp được đề cập nhiều nhất là sử dụng Bộ chuyển đổi mức logic hai hướng, thực sự giải quyết được vấn đề. Nhưng nó cũng thêm một thành phần khác vào danh sách của bạn và các kết nối dây bổ sung trên mạch của bạn

Một cách khác mà tôi đã tìm thấy là chỉ cần tháo 2 điện trở pullup trong "ba lô bộ chuyển đổi I2C" khỏi màn hình LCD. Bên cạnh việc dễ dàng hơn nhiều, nó có những lợi thế khác được giải thích trong phần so sánh ở cuối. Phương pháp này là trọng tâm chính của bài đăng này

Quân nhu

Arduino Đến hạn

Màn hình LCD 16x2 với mô-đun bộ điều hợp I2C

Hàn sắt

Bơm hàn hoặc bấc hàn

Cái nhíp

Bước 1: Nguồn gốc của Giải pháp

Giải pháp không phải do tôi phát minh ra, tôi đã thấy một gợi ý và giải thích khá hay trên Diễn đàn Arduino trong liên kết bên dưới, mà tôi sẽ tái hiện trong bài đăng này.

forum.arduino.cc/index.php?topic=553725.0

Câu trả lời từ: david_prentice

Tôi không thể tìm thấy bất kỳ hướng dẫn đầy đủ nào trên internet và vì đây là một vấn đề rất phổ biến, tôi đang cố gắng trình bày chi tiết giải pháp ở đây, chứng kiến nó thực sự hoạt động và thêm thông tin có thể giảm bớt một số hoài nghi về kết quả của nó.

Bước 2: Giải thích

Thiết bị

Để giao tiếp I2C hoạt động, nó yêu cầu các điện trở pullup được kết nối với các chân SDA và SCL. Đó là bởi vì các thiết bị chỉ biến các chân này THẤP trong khi giao tiếp. Để biểu thị mức CAO, nó chỉ cần không gửi giá trị THẤP, và nhờ vào các lần kéo nó lên mức CAO. (sự hiểu biết này sẽ khá quan trọng sau này)

Màn hình LCD "I2C ba lô" có hai điện trở kéo lên 4K7 phục vụ yêu cầu I2C. Nhưng vì chúng được kết nối với Vcc, nếu bạn sử dụng 5 V, chúng sẽ kéo SDA và SCL xuống 5 V.

Nếu bạn nhìn vào biểu dữ liệu, bạn có thể thấy rằng, không giống như các bảng khác, Due đã có điện trở kéo lên 1K5 trên bo mạch trên các chân SDA, SCL chính của nó, kéo chúng lên 3,3 V.

Kiểm tra

  • Màn hình LCD -> Arduino
  • Gnd -> Gnd
  • Vcc -> 5V
  • SDA -> SDA
  • SCL -> SCL

Nếu bạn chỉ kết nối màn hình LCD trên Do (theo cách đi dây ở trên), các bộ kéo Do 1k5 (hoặc 1k0) được kết nối với 3,3V và các bộ kéo LCD 4K7 được kết nối với 5 V sẽ dẫn đến các dòng I2C không tải ở 3,7 V (3,6 V với 1k0). Điều đó là không tốt, vì biểu dữ liệu Do quy định điện áp tối đa là 3,6 V cho các đường I / O của nó.

Bằng cách thử nghiệm kịch bản này, chỉ với màn hình LCD, tôi nhận được 3, 56 V. Bằng cách thêm Mô-đun EEPROM vào cùng một SDA và SCL, nó đã tăng lên đến 3,606 V. Trong cả hai trường hợp, mọi thứ đều hoạt động bình thường, nhưng chúng khác xa điện áp lý tưởng. mức tối đa được quy định là 3,6 V.

Vì vậy, có, có khả năng nó sẽ hoạt động giống như của tôi đã làm trong khi không thực hiện bất kỳ thay đổi nào. Nhưng mức điện áp vẫn còn xa lý tưởng và một số khác biệt về kéo lên đến hạn hoặc màn hình LCD có thể khiến nó vượt quá giới hạn 3,6 V. (Ít nhất bạn nên kiểm tra cẩn thận trước khi sử dụng chiết áp 20K hoặc 100K điện trở thấp nhất giữa các chân 5 V và SCL / SDA trước khi chúng đạt đến 3,6 V, mặc dù phần còn lại của giải pháp an toàn hơn nhiều và có lẽ dễ dàng hơn)

Dung dịch

Giải pháp được đưa ra là chỉ cần tháo các điện trở kéo lên khỏi ba lô LCD, cố gắng kéo dòng lên đến 5 V. Sau đó, chỉ còn lại các điện trở kéo lên của Do trên bo mạch, kéo dòng SCL và SDA đến 3,3V. Nó hoạt động hoàn hảo, duy trì các chân không hoạt động ở khoảng 3,262 V!

Các kết nối vẫn như cũ:

  • Màn hình LCD -> Arduino
  • Gnd -> Gnd
  • Vcc -> 5V
  • SDA -> SDA
  • SCL -> SCL

Nếu bạn tự hỏi liệu màn hình LCD sẽ không kéo dòng đến 5 V để biểu thị mức CAO khi giao tiếp, hãy nhớ rằng trên I2C, các thiết bị chỉ kéo dòng THẤP, là tín hiệu CAO được biểu thị khi không can thiệp, đó sẽ là 3,3 V từ các pull-up tích hợp của Due.

Ngoài ra, 3,3 V là đủ để ba lô I2C coi là tín hiệu CAO.

Bước 3: Xác định và loại bỏ các điện trở

Xác định và loại bỏ các điện trở
Xác định và loại bỏ các điện trở
Xác định và loại bỏ các điện trở
Xác định và loại bỏ các điện trở

Hình ảnh trên hiển thị màu đỏ các điện trở kéo lên mà tôi đã tìm thấy trong mô-đun của mình.

Nhận định

Vì ba lô bộ chuyển đổi LCD I2C có thể khác nhau, nên các điện trở có thể không có cùng cấu hình. Để xác định các điện trở kéo lên, bạn có thể sử dụng đồng hồ vạn năng có kiểm tra tính liên tục. Mỗi điện trở kéo lên phải có một đầu được kết nối với chân SCL hoặc SDA và đầu kia với Vcc.

Trong trường hợp của tôi, có ba trong số các điện trở 4K7 (472 trong mã SMD) trên bảng. Chỉ có hai trong số họ đáp ứng các yêu cầu ở trên, chỉ ra rằng đây là những pullup mà chúng tôi đang tìm kiếm!

Để đề phòng thêm (nếu vì lý do nào đó mà chúng không phải là 4K7), tôi cũng đã kiểm tra các điện trở khác và xác nhận rằng không có điện trở nào trong số chúng đáp ứng các yêu cầu để trở thành pull-up.

Di dời

Bây giờ, tất cả những gì bạn phải làm là làm chúng tan hoang! Sẽ dễ dàng hơn nếu bạn có một máy bơm hàn hoặc bấc hàn và nhíp để trợ giúp.

Bước 4: So sánh giữa các giải pháp

Bộ chuyển đổi mức logic hai hướng (LLC)

Ưu điểm:

Không yêu cầu bất kỳ thiết bị hoặc khả năng hàn nào

Nhược điểm:

Quảng cáo thêm cáp và LLC vào danh sách thành phần danh sách của bạn

Kết nối lộn xộn hơn với các thành phần bổ sung

Đắt hơn một chút

Làm tan các điện trở kéo lên của màn hình LCD

Ưu điểm:

Kết quả cuối cùng sạch hơn

Bạn có thể làm điều đó ngay lập tức, không cần phải đợi LLC

Đặc biệt tốt nếu bạn muốn giảm sự đa dạng của các thành phần và độ phức tạp lắp ráp trong một dự án phức tạp hoặc bạn muốn nhân rộng

Nhược điểm:

Làm thay đổi mạch LCD (Nếu bạn muốn nó "sẵn sàng sử dụng" với Uno, đã có các bộ kéo 4K7, bạn có thể hoàn tác các thay đổi giải quyết chúng)

Bước 5: Cân nhắc cuối cùng

Tôi hy vọng hướng dẫn này làm sáng tỏ vấn đề tương thích này và một số giải pháp khả thi của nó.

Nếu bạn có bất kỳ ý tưởng cải tiến, giải thích tốt hơn, giải pháp mới hoặc tìm thấy bất kỳ lỗi nào trong bài đăng, vui lòng cho tôi biết trong phần bình luận!:)

Đề xuất: