Giao tiếp module LCD 16x2 với Arduino, bài viết sẽ nói rõ chức năng từng chân của LCD và cách kết nối module LCD với LCD
GIAO TIẾP MODULE LCD VỚI ARDUINO
Trên thị trường có rất nhiều loại module LCD, các loại màn hình LCD được sử dụng phổ biến có thể bạn biết là LCD 16x2 ký tự, LCD 20×4 ký tự, module LCD Nokia 5110, Màn hình LCD đồ họa 128 × 64 và màn hình LCD cảm ứng LCD 2,4 inch. Bài viết này sẽ tập trung vào đối tượng LCD 16x2, là loại LCD gồm 2 hàng hiển thị, có thể hiển thị tổng cộng 32 ký tự trong mã ASCII lên màn hình, nghĩa là một hàng có thể hiển thị tối đa 16 ký tự. Tương tự với loại LCD 20x4, sẽ có 4 hàng hiển thị, mỗi hàng hiển thị được 20 ký tự
Sơ đồ các chân của LCD 16x2:
Module LCD JHD162A có 16 chân và có thể được vận hành ở chế độ 4 bit hoặc 8 bit. Ở đây chúng ta đang sử dụng module LCD ở chế độ 4 bit. Các chân của module bao gồm các chân được đánh số từ 1 đến 16 theo chiều từ trái sang phải, chúng ta lần lượt quan sát các chân từ trái sang phải nhé:
- Vss: Chân nối mass (GND)
- Vcc: Chân nối nguồn cấp điện (5VDC)
- Vee: Là chân điều chỉnh độ tương phản, độ tương phản sẽ thay đổi tương ứng với các giá trị điện áp được cấp vào trong này, thường thì mức cài đặt chuẩn là 0.4V đến 0.9V
- RS: Chân chọn thanh ghi, module này có 2 thanh ghi để lựa chọn (thanh ghi lệnh và thanh ghi giữ liệu), mức logic cao (mức 1) là tín hiệu chọn thanh ghi dữ liệu, mức thấp (mức 0) là tín hiệu chọn thanh ghi lệnh. Ví dụ nếu chân RS ở mức cao và các chân dữ liệu của module LCD từ DB0 đến DB7 đồng thời được truyền tín hiệu kỹ thuật số (tín hiệu mức logic 0 và 1) thì dữ liệu tương ứng từ các chân tín hiệu sẽ được lập tức hiển thị trên màn hình LCD. Còn nếu RS ở mức 0 và ta truyền tín hiệu vào các chân tín hiệu thì đồng nghĩa chúng ta đang ra lệnh cho LCD thực thi một lệnh nào đó (lệnh này sẽ được ghi vào bộ điều khiển của LCD, ví dụ như lệnh sắp đặt vị trí con trỏ, lệnh xoá màn hình,...)
- R/W: lựa chọn chế độ đọc hoặc ghi, R/W ở mức cao sẽ kích hoạt chế độ đọc, R/W ở mức thấp thì kích hoạt chế độ ghi
- E: cấp vào chân tín hiệu tích cực cạnh xuống (tín hiệu mức cao chuyển về mức thấp) sẽ kích hoạt và cho phép module LCD hoạt động
- Các chân từ DB0 đến DB7: là các chân tín hiệu ngõ vào LCD
- LED+: Chân anode của các đèn led hiển thị của LCD, khi cấp nguồn vào chân này nên mắc kèm theo điện trở để hạn dòng
- LED- : Chân cathode của các đèn led hiển thị của LCD
Sơ đồ giao tiếp giữa LCD với Arduino
Chân RS của module LCD được kết nối với chân số 12 (chân Digital) của arduino. Chân R / W của LCD được nối đất. Chân E của module LCD được kết nối với chân số 11 (là chân Digital) của arduino. Trong mạch này, module LCD và arduino được giao tiếp ở chế độ 4 bit. Điều này có nghĩa là chỉ có bốn trong số chân Digital đầu vào hay còn gọi chân tín hiệu số (DB4 đến DB7) của LCD được sử dụng. Phương pháp này rất đơn giản, yêu cầu ít kết nối hơn và bạn gần như có thể sử dụng toàn bộ các chức năng của module LCD. Các chân tín hiệu số DB4, DB5, DB6 và DB7 được giao tiếp (kết nối) với các chân tín hiệu số (Digital) số 5, 4, 3 và 2 của Arduino. Chân Vee được mắc với mạch chiết áp 10K, biến trở 10K được sử dụng để điều chỉnh độ tương phản của màn hình. Điện trở 560 ohm R1 giới hạn dòng điện đi qua đèn LED phía sau màn hình LCD. Chương trình đầy đủ để giao tiếp LCD với arduino được hiển thị bên dưới:
#include
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // khai báo các chân giao tiếp của Arduino
void setup()
{
lcd.begin(16, 2); // khởi tạo module 16x2 LCD
}
void loop()
{
lcd.setCursor(0,0); //đặt con trỏ ở hàng 0 cột 0
lcd.print("16x2 LCD MODULE"); // in ra chuỗi ký tự 16x2 LCD MODULE
lcd.setCursor(2,1); //đặt con trỏ ở hàng 1 cột 2
lcd.print("HELLO WORLD"); // in ra màn hình lcd chuỗi ký tự HELLO WORLD
}
Để thuận tiện cho việc giao tiếp giữa module Arduino và LCD, chúng ta sử dụng thư viện tích hợp trong Arduino là - được viết cho các module LCD sử dụng chipset Hitachi HD44780 (hoặc chipset tương thích). Thư viện này có thể xử lý cả chế độ 4 bit và hệ thống dây 8 bit của LCD.
Tham khảo - tài liệu của Thư viện LiquidCrystal - trước khi bạn tiếp tục!
Thư viện Liquid LiquidCrystal.h được sử dụng để dễ dàng điều khiển module LCD bằng Arduino nhờ sự trợ giúp của các lệnh đã được định nghĩa sẵn trong thư viện. Ví dụ, chuỗi dữ liệu có thể được in trên module LCD chỉ bằng cách gọi một lệnh lcd.print ();. Nếu bạn muốn in ra Hello Hello World ở hàng 1, bắt đầu từ cột 3; đầu tiên đặt con trỏ ở vị trí mong muốn bằng lệnh lcd.setCoder (1,3); và sau đó viết lệnh để in các ký tự dưới dạng lcd.print (“Hello World”); .Thư viện có hỗ trợ Arduino IDE (vì đây là thư viện chuẩn được cài đặt sẵn.
Thư viện LiquidCstall.h cung cấp các chức năng / lệnh cho hầu hết tất cả các thao tác như in chuỗi, đặt con trỏ, khởi tạo LCD, cuộn màn hình, cuộn tự động, xóa LCD, nhấp nháy v.v.
Hotline: 0979 466 469