- Vật liệu cần thiết:
- Đăng kí ca:
- Giao diện LCD với ESP12 mà không cần sử dụng Shift Register:
- MÃ:
- Giao diện LCD với ESP12 sử dụng Shift Register SN74HC595N:
- MÃ:
Trong hướng dẫn này, chúng ta sẽ xem cách giao tiếp NodeMCU với LCD 16x2 mà không sử dụng giao tiếp I2C. Ở đây chúng ta sẽ giao diện LCD 16x2 sử dụng thanh ghi shift SN74HC595. Chúng tôi cũng có thể giao diện nó ngay cả khi không sử dụng bất kỳ thanh ghi ca nào. Chúng ta sẽ thấy cả hai loại giao diện trong hướng dẫn này. Sự khác biệt chính giữa cả hai giao diện là số lượng chân được sử dụng trong NodeMCU.
Vật liệu cần thiết:
- NodeMCU ESP12E
- SN74HC595 IC Đăng ký Shift
- Mô-đun LCD 16x2
- Chiết áp
- Dây Nam-Nữ
- Breadboard
Đăng kí ca:
Trong các hệ thống kỹ thuật số, thanh ghi dịch chuyển là sự kết hợp của các flip-flops được xếp thành chuỗi và chia sẻ cùng một đồng hồ. Trong gói phân tầng này, dữ liệu ra khỏi một flip-flop hoạt động như dữ liệu vào cho flip-flop tiếp theo, dẫn đến một mạch dịch chuyển theo một vị trí của mảng bit được lưu trữ trong đó.
IC mà chúng tôi sẽ sử dụng là SN74HC595N. Nó là một nối tiếp 8 bit đơn giản trong IC thanh ghi dịch ra song song. Nói cách đơn giản, vi mạch này cho phép thêm các đầu vào hoặc đầu ra bổ sung vào vi điều khiển bằng cách chuyển đổi dữ liệu giữa các định dạng song song và nối tiếp. Bộ vi điều khiển của chúng tôi sử dụng 3 chân của vi mạch này để gửi dữ liệu tuần tự. Trên thực tế, đầu ra 8-bit sẽ đến trên 8 chân sau khi nhận được thông tin 8-bit từ các chân đầu vào. Tìm hiểu thêm về sổ đăng ký ca tại đây.
Sơ đồ PIN và các chức năng PIN của IC SN74HC595N được đưa ra dưới đây:
Bạn tìm thấy giao diện của 74HC595N với Arduino và với Raspberry pi tại đây.
Giao diện LCD với ESP12 mà không cần sử dụng Shift Register:
Nếu bạn đã sử dụng LCD 16x2 với bảng Arduino thì mọi việc sẽ rất dễ dàng. Bạn chỉ cần hookup các chân trong NodeMCU giống như bạn đã làm với board Arduino.
Có 16 chân GPIO trong NodeMCU và chúng ta cần 6 chân và gnd, vcc. Kết nối các chân theo sơ đồ mạch cho dưới đây:
Chúng tôi sẽ sử dụng 4 chân dữ liệu và RS, EN của LCD được kết nối như:
chân d7 của LCD == chân D8 của NodeMCU
chân d6 của LCD == chân D7 của NodeMCU
chân d5 của LCD == chân D6 của NodeMCU
chân d4 của LCD == chân D5 của NodeMCU
Chân RS của LCD == Chân D2 của NodeMCU
Chân En của LCD == Chân D3 của NodeMCU
Bạn có thể sử dụng bất kỳ GPIO nào cho các kết nối này.
Bây giờ, hãy tải mã lên bằng Arduino IDE như đã giải thích trước đó. Mã giống như đối với bảng Arduino có thể được tìm thấy trong ví dụ Liquidcrystal. Chương trình đơn giản và dễ hiểu nếu bạn muốn tìm hiểu thêm về chương trình, hãy kiểm tra giao diện LCD của chúng tôi với Chương trình Arduino.
MÃ:
#include
Như chúng ta đã thấy, chúng ta đã sử dụng 6 chân của NodeMCU. Đã có ít chân cắm hơn cho bảng mạch nhỏ này và chúng tôi chỉ còn lại một số chân cắm để giao tiếp với các cảm biến khác.
Vì vậy, để khắc phục vấn đề này, chúng tôi sẽ sử dụng IC thanh ghi dịch chuyển sẽ giảm thiểu số không. của các chân được sử dụng trên NodeMCU.
Giao diện LCD với ESP12 sử dụng Shift Register SN74HC595N:
Có 8 chân đầu ra và 3 chân đầu vào có sẵn trong IC thanh ghi dịch chuyển. Chúng ta sẽ sử dụng 6 chân đầu ra để kết nối với LCD và 3 chân đầu vào với NodeMCU.
Kết nối của LCD với IC được đưa ra như:
Chân D7 của LCD == chân 1 của IC
Chân D6 của LCD == chân 2 của IC
Chân D5 của LCD == chân 3 của IC
Chân D4 của LCD == chân 4 của IC
Chân RS của LCD == chân 7 của IC
Chân en của LCD == chân 15 của IC
Kết nối NodeMCU với IC:
Chân D6 của NodeMCU == chân 14 của IC, PIN DATA của IC
Chân D7 của NodeMCU == chân 12 của IC, PIN LATCH của IC
Chân D8 của NodeMCU == chân 11 của IC, PIN ĐỒNG HỒ của IC
Kết nối PIN 16 và PIN 10 của IC với Vcc.
Kết nối mã PIN 8 và mã PIN 13 của IC với GND.
Làm mạch cẩn thận theo sơ đồ dưới đây:
Bây giờ Phần cứng của chúng tôi đã sẵn sàng để lập trình.
Bây giờ, chúng tôi cần một thư viện “ LiquidCrystal595 ” có thể được tải xuống từ liên kết này https://github.com/tehniq3/LiquidCrystal595 bằng cách làm theo các bước sau:
1. Menu Goto Sketch của Arduino IDE.
2. Nhấp vào Bao gồm Thư viện .
3. Bây giờ, nhấp vào Thêm thư viện.zip. Chọn tệp zip bạn đã tải xuống từ liên kết nhất định và hoàn tất.
Bây giờ tải lên mã được cung cấp bên dưới và bạn sẽ thấy thông báo in ra màn hình LCD.
MÃ:
#include
Mã này đơn giản vì chúng ta chỉ cần cung cấp chân dữ liệu, chân chốt và chân đồng hồ làm đối số trong LiquidCrystal595 lcd (); và phần còn lại của mã giống như chúng ta đã làm trước đó.
Bằng cách này, bạn vừa tiết kiệm được 3 chân của NodeMCU bằng cách sử dụng Shift Register.
Ngoài ra, hãy kiểm tra giao diện LCD 16x2 với các Bộ vi điều khiển khác:
- Giao diện LCD với Vi điều khiển PIC
- Giao diện LCD 16x2 với Raspberry Pi bằng Python
- Giao diện LCD với Vi điều khiển ATmega32
- Giao diện LCD với Vi điều khiển 8051