Mục lục:
- Bước 1: Mô tả bộ phận - Mô-đun tấm chắn bàn phím LCD
- Bước 2: Mô tả bộ phận - Mô-đun nối tiếp I2C
- Bước 3: Kết nối
- Bước 4: Làm cho phím RST có thể sử dụng được tương tự như 5 phím khác
- Bước 5: Phần mềm
- Bước 6: Đánh giá và thảo luận
Video: 1602 Mô-đun che chắn bàn phím LCD với ba lô I2C: 6 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:33
Là một phần của một dự án lớn hơn, tôi muốn có màn hình LCD và bàn phím để điều hướng một số menu đơn giản. Tôi sẽ sử dụng rất nhiều cổng I / O trên Arduino cho các công việc khác, vì vậy tôi muốn có một giao diện I2C cho màn hình LCD. Vì vậy, tôi đã mua một số phần cứng, bao gồm một mô-đun lá chắn Bàn phím LCD 1602 từ DFRobot và một mô-đun nối tiếp I2C ẩn danh cho màn hình LCD. Tôi muốn sử dụng chúng với Arduino Nano. Sau đó, tôi nhận thấy có một số thách thức để làm cho các thành phần này hoạt động cùng nhau - nhưng điều đó là có thể. Vì vậy, tôi muốn chia sẻ kinh nghiệm của mình và có thể giúp một số người khác.
Ảnh này là breadboard đang hoạt động, có thể hiển thị thông báo trên màn hình LCD và xác định các phím bấm. Màn hình LCD được điều khiển thông qua giao diện I2C, bao gồm cả đèn nền LCD. Các phím bấm được Arduino nhận trên chân A0 (nó có thể là bất kỳ chân nào trong số các chân analog, ngoại trừ A4 và A5 được gắn cho giao diện I2C).
Bước 1: Mô tả bộ phận - Mô-đun tấm chắn bàn phím LCD
Mô-đun che chắn bàn phím LCD bao gồm một màn hình LCD 1602 thường được sử dụng gắn trên đầu bảng mạch giữ các phím và lấy một tập hợp con các kết nối LCD và cung cấp chúng cho các chân tiêu đề ở mặt dưới của bảng mạch. Tôi hiểu rằng bảng này được thiết kế để được gắn trên đầu Arduino Uno hoặc tương tự và cung cấp bố trí chân phù hợp để nó hoạt động trong môi trường đó. Tôi đã mua mô-đun này trên Ebay từ một nhà cung cấp ở Trung Quốc. Các chân tiêu đề ở phía dưới (bàn phím) của bảng chủ yếu được gắn nhãn nhưng các chân ở phía trên, là giao diện LCD, không được dán nhãn. Tuy nhiên, các chân trên màn hình LCD được dán nhãn.
Bước 2: Mô tả bộ phận - Mô-đun nối tiếp I2C
Mô-đun nối tiếp có tiêu đề 4 chân thông thường cho I2C và một tập hợp các chân tiêu đề không có nhãn mà tôi hiểu là nhằm cắm trực tiếp vào mặt dưới của mô-đun LCD. Bằng cách nghiên cứu các nhãn trên màn hình LCD, tôi đã có thể xác định chức năng của các chân trên mô-đun nối tiếp.
Mô-đun này dựa trên IC PCF8574T kết thúc giao thức I2C, có 3 chân để điều khiển địa chỉ (20 đến 27) và có 8 chân đầu vào / đầu ra kỹ thuật số P0 đến P7. Theo bảng dữ liệu của PCF8574T, mỗi chân I / O có một FET để kéo nó xuống đất ở trạng thái THẤP và có thể chìm ít nhất 20ma. Ở trạng thái Cao, nó có dòng kéo lên hoạt động thoáng qua và sau đó là dòng kéo lên tiếp tục khoảng 0,1 mA.
Trên mô-đun này, tất cả các chân I / O kỹ thuật số, ngoại trừ P3, chỉ được đưa ra các chân tiêu đề (ở bên phải trong ảnh). Trong trường hợp của P3, nó được kết nối với đế của một bóng bán dẫn (có thể nhìn thấy trong ảnh ở khu vực trên cùng bên phải ngay dưới nhãn "LED"). Bộ phát của bóng bán dẫn đó được kết nối với Vss (mặt đất) và bộ thu được kết nối với chân tiêu đề 16, nơi nó có thể được sử dụng để điều khiển đèn nền LCD. Do bóng bán dẫn, trạng thái logic bị đảo ngược so với trạng thái giả định trong thư viện phần mềm. Tức là, đèn nền LCD được BẬT khi chân P3 ở mức Thấp và TẮT khi chân P3 ở mức Cao.
Nhãn trên bóng bán dẫn cho biết L6 mà theo nghiên cứu của tôi có lẽ biến nó thành MMBC1623L6 có mức tăng dòng tối thiểu là 200. Với 0,1 mA của dòng cơ bản, nó sẽ có thể duy trì điều kiện THẤP tại bộ thu của nó (mô-đun Pin 16) với dòng thu ít nhất 20mA.
Ngoài ra, mô-đun này có một chiết áp 10K được kết nối giữa +5 và Ground, có dây dẫn biến thiên được đưa ra chân 3 (thứ ba từ dưới cùng trong ảnh). Khi kết nối trực tiếp với màn hình LCD, chiếc nồi này sẽ điều khiển độ tương phản của màn hình LCD. Tuy nhiên, chức năng đó được cung cấp bởi một nồi tương tự riêng biệt trên tấm chắn LCD, vì vậy nồi này trên mô-đun nối tiếp không có chức năng.
Tôi không thể tìm thấy bất kỳ kết nối nào với chân INT của PCF8574T.
CẬP NHẬT ngày 22 tháng 8 năm 2019
Như đã nói ở trên, PCF8574 có 3 chân điều khiển địa chỉ. Những thứ này dường như được mang ra các miếng đệm trên bảng ba lô, nơi chúng được dán nhãn A0, A1 và A2. Chúng có thể được nhìn thấy trong ảnh. Tôi chưa thử nghiệm điều này, nhưng có vẻ như gần như chắc chắn rằng bằng cách bắc cầu một hoặc nhiều chân này với các tấm đệm liền kề, địa chỉ I2C có thể được kiểm soát trong phạm vi từ 20 đến 27. Hơn nữa, có một thiết bị gần như giống hệt thứ hai, PCF8574A có chức năng giống với PCF8574 nhưng bao gồm dải địa chỉ từ 0x38 đến 0x3F.
Địa chỉ mà thiết bị của bạn thực sự sử dụng có thể được kiểm tra bằng I2CScanner. Có một số máy quét I2C đơn giản có sẵn từ nhiều nguồn khác nhau. Địa chỉ này tại https://github.com/farmerkeith/I2CScanner cũng xác định một số thiết bị được tìm thấy.
Bước 3: Kết nối
Cảm ơn ChaitanyaM17, người đã cung cấp sơ đồ Fritzing mô tả các kết nối, được mô tả bên dưới.
Quyền lực:
Mô-đun LCD có một chốt ở phía dưới có nhãn "5.0V". Ở bên phải, liền kề với đó là hai chốt không có nhãn, cả hai đều được nối đất.
Giữ mô-đun nối tiếp với giao diện I2C ở đầu bên trái, có 16 chân ở cạnh dưới. Đầu tiên trong số này là mặt đất và thứ hai trong số này là + 5v. Một tùy chọn khác là sử dụng hai chân thấp hơn trên giao diện I2C để cấp nguồn, nhưng tôi thấy thuận tiện hơn khi sử dụng các chân như mô tả ở trên.
Giao diện I2C. Trên mô-đun nối tiếp, chân trên cùng là SCL (đồng hồ) và nó đi đến Arduino A5. Chân thứ hai là SDA (dữ liệu) và nó đi đến Arduino A4.
Giao diện in LCD. Có 6 kết nối giữa mô-đun nối tiếp và tấm chắn Bàn phím LCD, tất cả chúng đều nằm giữa các chân không có nhãn. Tôi sẽ xác định chúng trên mô-đun LCD bằng cách đếm từ Phải sang Trái, với chân đầu tiên là 1. Có 2 khối 8, vì vậy chúng đi từ 1 đến 16. Tôi xác định chúng trên mô-đun nối tiếp I2C bằng cách đếm từ Trái sang Đúng, cũng có 16 trong số này. Ngoài ra, tôi cung cấp cho mỗi dây một nhãn, đó là chân tương đương trên Arduino thường được liên kết với chức năng đó, trong trường hợp kết nối trực tiếp mà không có mô-đun nối tiếp.
Vì vậy, 6 kết nối dữ liệu là:
Tương đương Arduino // Chân mô-đun nối tiếp // Chân mô-đun bàn phím LCD
D4 // 11 // 5 D5 // 12 // 6 D6 // 13 // 7 D7 // 14 // 8 D8 // 4 // 9D9 // 6 // 10
Điều khiển đèn nền LCD: Điều này sử dụng một kết nối nữa:
Tương đương Arduino // Chân mô-đun nối tiếp // Chân mô-đun bàn phím LCD
D10 // 16 // 11
Giao diện bàn phím: Điều này sử dụng một dây duy nhất từ chân mô-đun LCD ở phía dưới có nhãn "A0", đến chân A0 trên Arduino. Ít nhất thì điều đó khá dễ dàng!
Bước 4: Làm cho phím RST có thể sử dụng được tương tự như 5 phím khác
RST có thể được kết nối trực tiếp với đầu vào RESTART của Arduino Nano.
Tuy nhiên, nếu bạn muốn phím RST có thể sử dụng được trong phần mềm cho những việc khác, điều này có thể được thực hiện bằng cách kết nối điện trở 15K giữa chân RST và chân A0 ở mặt dưới của tấm chắn bàn phím LCD.
Điều này hoạt động như sau: Có một điện trở 2K giữa + 5V và phím Phải. Sau đó, một chuỗi các điện trở tăng dần cho mỗi phím khác (330R cho phím LÊN, 620R cho phím XUỐNG, 1K cho phím TRÁI và 3K3 cho phím CHỌN. Tất cả các phím (bao gồm cả phím RST) kết nối với mặt đất. Khi được kết nối với bộ chuyển đổi A / D 10 bit (như đối với Arduino Nano A0), chúng cung cấp các giá trị xấp xỉ sau:
Đúng = 0; Lên = 100; Xuống = 260; Trái = 410; Chọn = 640.
Với điện trở 15 k đối với RST, nó cung cấp khoảng 850.
Phần mềm sẽ sử dụng các giá trị xung quanh điểm giữa giữa các giá trị này để quyết định phím nào đã được nhấn.
Bước 5: Phần mềm
Phần mềm hữu ích tất nhiên là một bài tập cho người đọc. Tuy nhiên, để bắt đầu, bạn có thể xem phần mềm thử nghiệm của tôi. Tôi đã sử dụng thư viện NewLiquidCrystal, có hỗ trợ cho giao diện I2C. Tất cả chỉ hoạt động, khi tôi đã cài đặt đúng các thư viện.
Điểm chính là đảo ngược cực tính của các lệnh Backlight OFF và ON (do bóng bán dẫn trên mô-đun I2C như được giải thích trong phần Mô tả bộ phận).
CẬP NHẬT ngày 22 tháng 8 năm 2019
Nếu bạn gặp sự cố với màn hình LCD không hoạt động, vui lòng kiểm tra địa chỉ I2C của ba lô nối tiếp của bạn bằng máy quét I2C. Một máy quét thích hợp được đính kèm. Sau đó, nếu cần, hãy điều chỉnh tham số đầu tiên trong câu lệnh
Màn hình LCD LiquidCrystal_I2C (0x27, 2, 1, 0, 4, 5, 6, 7);
Bước 6: Đánh giá và thảo luận
Như bạn thấy, tôi có các chức năng chính đang hoạt động.
Dự định tiếp theo của tôi là đặt nó vào một hộp dự án như một phần của một dự án khác. Tuy nhiên, sau khi bắt đầu con đường này, tôi biết được rằng có một khó khăn khác mà tôi không lường trước được.
Khó khăn là mô-đun Bàn phím LCD này không được thiết lập để lắp vào hộp. Bất kỳ loại hộp nào. Các nút của 6 phím nằm dưới mức của màn hình LCD, vì vậy nếu mô-đun được gắn trong hộp (ví dụ như trong nắp) với mặt trên của bảng mạch LCD ngang với mặt dưới của nắp, thì đỉnh của các phím cách mặt trên của nắp khoảng 7mm.
Các giải pháp khả thi là:
a) Đặt lên với nó. Khoan các lỗ tiếp cận trên nắp và sử dụng một công cụ (ví dụ như kim đan đã cắt có đường kính phù hợp) để nhấn các nút.
b) Tháo màn hình LCD khỏi bảng mạch mô-đun và thực hiện phẫu thuật trên bàn phím để hai thành phần có thể được cố định vào nắp hộp dự án một cách độc lập (Tôi nghĩ vẫn có thể có vấn đề với các nút quá ngắn)
c) loại bỏ các nút hiện có và thay thế chúng bằng các nút cao hơn. Các nút mới phải cao khoảng 13 mm để chúng có thể được vận hành qua nắp hộp dự án). Công tắc nút thay thế luôn sẵn có với nhiều độ cao, bao gồm cả 13mm.
d) loại bỏ mô-đun tấm chắn bàn phím LCD và sử dụng các đơn vị LCD và bàn phím riêng biệt (tức là bắt đầu lại). Có rất nhiều đơn vị bàn phím có sẵn, tuy nhiên tôi chưa thấy đơn vị nào có bố cục 6 phím giống như trên mô-đun này (tức là Chọn, Trái, Lên, Xuống, Phải, Khởi động lại). Nó có thể không phải là một vấn đề lớn, nhưng một trong những lý do tôi bắt đầu với mô-đun này là tôi nghĩ bố cục chính này là những gì tôi muốn.
Tôi đang dự định thực hiện với giải pháp c) ở trên, và xem tôi đi như thế nào.
Một đoạn thông tin khác có thể được quan tâm:
Với đèn nền BẬT, mức tiêu thụ hiện tại của dự án này là: Arduino Nano 21,5 ma; Mô-đun nối tiếp 3,6 ma; Mô-đun LCD 27,5 mA; Tổng 52 mA.
Với đèn nền TẮT, mức tiêu thụ hiện tại của dự án này là: Arduino Nano 21,5 ma; Mô-đun nối tiếp 4,6 ma; Mô-đun LCD 9,8 mA; Tổng 36 mA.
Đề xuất:
Ngăn chặn bàn tay và bàn chân đẫm mồ hôi với máy bay chiến đấu mồ hôi!: 7 bước (có hình ảnh)
Hãy ngăn chặn bàn tay và bàn chân đầy mồ hôi với Sweat Fighter!: 3/1/19 Cập nhật: Một số người báo cáo bị đau, nguyên nhân là do đảo cực nhanh chóng. Tôi sẽ cập nhật mã để giảm vấn đề đó, nhưng hiện tại bạn nên tạm dừng việc xây dựng điều này
Sử dụng Tấm chắn bàn phím LCD 1602 W / Arduino [+ Dự án thực tế]: 7 bước
Sử dụng 1602 LCD Keypad Shield W / Arduino [+ Dự án thực tế]: Bạn có thể đọc phần này và các hướng dẫn tuyệt vời khác trên trang web chính thức của ElectroPeak Cách thiết lập lá chắn và xác định các phím
Giao diện bàn phím với 8051 và hiển thị số bàn phím trong 7 phân đoạn: 4 bước (có hình ảnh)
Giao diện bàn phím với 8051 và hiển thị số bàn phím trong 7 phân đoạn: Trong hướng dẫn này, tôi sẽ cho bạn biết về cách chúng ta có thể giao diện bàn phím với 8051 và hiển thị số bàn phím trong màn hình 7 đoạn
Giao diện Bàn phím LCD 16x2 chữ và số và bàn phím ma trận 4x4 với Raspberry Pi3: 5 bước (có hình ảnh)
Giao diện Bàn phím ma trận màn hình LCD và 4x4 16x2 chữ và số với Raspberry Pi3: Trong phần hướng dẫn này, chúng tôi giải thích cách giao diện bàn phím ma trận 16x2 LED và 4x4 với Raspberry Pi3. Chúng tôi sử dụng Python 3.4 để phát triển phần mềm. Bạn cũng có thể chọn Python 2.7, với ít thay đổi
Bàn phím Das nhanh và bẩn (Bàn phím trống): 3 bước
Bàn phím Das nhanh và bẩn (Bàn phím trống): Bàn phím A Das là tên của bàn phím phổ biến nhất không có chữ khắc trên các phím (bàn phím trống). Bàn phím Das được bán lẻ với giá 89,95 đô la. Tài liệu hướng dẫn này sẽ hướng dẫn bạn cách tự làm một cái bằng bất kỳ bàn phím cũ nào mà bạn có