Giao Tiếp LCD 16x2 Với Arduino - Điện Tử Việt
Có thể bạn quan tâm
- Đăng nhập/Đăng ký
- Ứng dụng
- Arduino
Trong bài viết này, tôi sẽ hướng dẫn cho các bạn cách giao tiếp một màn hình LCD 16×2 với Arduino Uno. Không giống như các bo mạch phát triển thông thường, giao tiếp một màn hình LCD với Arduino khá dễ dàng. Ở đây chúng ta không phải lo lắng về việc gửi và nhận dữ liệu. Chúng ta chỉ cần định rõ các chân và nó sẽ sẵn sàng để hiển thị dữ liệu trên màn hình LCD.
Chuẩn bị
Phần cứng
Tên linh kiện | Số lượng |
Arduino Uno | 1 |
LCD 16×2 | 1 |
Biến trở 10k | 1 |
Breadboard | 1 |
Dây cắm Breadboard |
Phần mềm: Arduino IDE
Giới thiệu về LCD 16×2
LCD (Liquid Crystal Display – Màn hình tinh thể lỏng) được sử dụng trong nhiều thiết bị như lò vi sóng, máy tính v.v.. Chúng đóng một vai trò rất quan trọng trong các hệ thống nhúng. Màn hình LCD có rất nhiều ưu điểm so với các dạng hiển thị khác: Nó có khả năng hiển thị ký tự đa dạng, trực quan (chữ, số và ký tự đồ họa), dễ dàng đưa vào mạch ứng dụng theo nhiều giao thức giao tiếp khác nhau, tốn ít tài nguyên hệ thống và giá thành rẽ,…
Chức năng các chân
Chân | Ký hiệu | Mô tả |
1 | VSS | Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này với GND của mạch điều khiển |
2 | VDD | Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân này với nguồn điện áp 5V của mạch điều khiển |
3 | V0 | Điều chỉnh độ tương phản của LCD. |
4 | RS | Chân chọn thanh ghi (Register Select). Nối chân RS với logic “0” (GND) hoặc logic “1” (VCC) để chọn thanh ghi. + Logic “0”: Bus D0-D7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ “ghi” – write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” – read) + Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR bên trong LCD. |
5 | R/W | Chân chọn chế độ đọc/ghi (Read/Write). Nối chân R/W với logic “0” để LCD hoạt động ở chế độ ghi, hoặc nối với logic “1” để LCD ở chế độ đọc. |
6 | E | Chân cho phép (Enable). Sau khi các tín hiệu được đặt lên bus DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân E. + Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào(chấp nhận) thanh ghi bên trong nó khi phát hiện một xung (high-to-low transition) của tín hiệu chân E. + Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra D0-D7 khi phát hiện cạnh lên (low-to-high transition) ở chân E và được LCD giữ ở bus đến khi nào chân E xuống mức thấp. |
7-14 | D0 – D7 | Tám đường của bus dữ liệu dùng để trao đổi thông tin với MCU. Có 2 chế độ sử dụng 8 đường bus này : + Chế độ 8 bit : Dữ liệu được truyền trên cả 8 đường, với bit MSB là bit D7. + Chế độ 4 bit : Dữ liệu được truyền trên 4 đường từ D4 tới D7, bit MSB là D7 |
15 | A | Nguồn dương cho đèn nền |
16 | K | GND cho đèn nền |
Sơ đồ kết nối LCD 16×2 với Arduino
Các kết nối được thực hiện cho màn hình LCD 16×2 được đưa ra dưới đây:
- Bốn chân dữ liệu D4 đến D7 được kết nối với bốn chân (0 đến 3) của Arduino.
- Chân chọn thanh ghi RS (Register Select) và chân cho E (Enable) chân được kết nối với chân 4 và chân 5 của Arduino.
- Chân VSS của màn hình LCD được nối đất trong khi chân VDD được kết nối với nguồn điện áp 5V.
- V0 của LCD được kết nối với biến trở 10KΩ để thay đổi độ sáng của màn hình LCD. Nếu không cần chỉnh độ tương phản của LCD thì chân này được nối đất.
- Chân RW được kết nối với mặt đất.
Arduino cho phép người dùng sử dụng LCD ở chế độ 4 bit. Loại giao tiếp này cho phép người dùng giảm số chân sử dụng trên Arduino, không giống như các vi điều khiển khác, ARDUINO không cần lập trình riêng để sử dụng nó ở chế độ 4 bit vì theo mặc định Arduino được thiết lập để giao tiếp ở chế độ 4 bit. Trong sơ đồ mạch bên trên bạn có thể thấy tôi đã sử dụng giao tiếp 4 bit (D4-D7).
Tóm lại, với sơ đồ mạch được kết nối như ở trên tôi đang kết nối 6 chân của LCD để điều khiển trong đó 4 chân là chân dữ liệu và 2 chân để điều khiển.
Chương trình
//Thêm thư viện LiquidCrystal – nó có sẵn vì vậy bạn không cần cài thêm gì cả
#include<LiquidCrystal.h>
LiquidCrystal lcd (5, 4, 3, 2, 1, 0); // khởi tạo các chân giao tiếp
void setup ()
{
lcd.begin(16, 2); // khởi tạo màn hình LCD 16×2
}
void loop ()
{
lcd.setCursor (0, 0); //đặt con trỏ tại hàng 0 cột 0
lcd.print (“dientuadenz.com”); // In ra màn hình lcd dòng chữ dientuadenz.com
lcd.setCursor (0,1); //đặt con trỏ tại cột 0 dòng 1
lcd.print (“Chao cac ban”); // In ra màn hình LCD dòng chữ Chao cac ban
}
Giải thích
Chương trình trên cho thấy màn hình LCD hiển thị các chuỗi Electronicshub và LCD 16X2.
Arduino cung cấp một thư viện được xây dựng cho màn hình LCD. File header là Liquid Crystal.h được khai báo để lấy tất cả các hàm từ thư viện này. Điều này có thể hỗ trợ chế độ hoạt động 8 bit hoặc chế độ 4 bit.
Dòng tiếp theo “Liquid Crystal lcd(RS,E,D4,D5,D6,D7)” xác định các chân của Arduino được giao tiếp với màn hình LCD. Ví dụ trong mạch của chúng ta chân RS của LCD được kết nối với chân 5 của Arduino. 5 được viết thay cho RS.
Trong hàm setup () khởi tạo LCD được thực hiện. Việc khởi tạo LCD chỉ được thực hiện khi nó được khai báo trong hàm Setup (). Void cho biết không có giá trị trả về.
Dòng lệnh tiếp theo là “lcd.begin (16 × 2)” 16 x 2 cho biết số hàng và cột của màn hình LCD.
Void loop () cho biết việc thực thi liên tục câu lệnh. Lệnh trong vòng lặp này được lặp lại cho đến khi reset bộ điều khiển.
Lcd.setCursor (cột, hàng) đặt điểm con trỏ. Hãy nhớ rằng chỉ có 2 hàng và 16 cột trong màn hình LCD.
Lcd.print (“”) in ra chuỗi ký tự được ghi trong dấu “”.
Chương trình trên chỉ đơn giản là hiển thị chuỗi ký tự trên màn hình LCD. Để cuộn màn hình hiển thị, chương trình được viết lại như sau:
// Thêm thư viện
#include <LiquidCrystal.h>
//Khai báo các chân giao tiếp
LiquidCrystal lcd (5, 4, 3, 2, 1, 0);
void setup()
{
// Khởi tạo LCD
lcd.begin(16, 2);
// In dòng chữ dientuadenz.com ra LCD
lcd.print(“dientuadenz.com”);
delay(1000); } void loop() {
// Cuộn 13 vị trí sang trái
for (int positionCounter = 0; positionCounter < 13; positionCounter++) {
// Cuộn 1 vị trí sang trái:
lcd.scrollDisplayLeft();
// đặt tốc độ di chuyển của màn hình
delay(500);
}
// Cuộn 29 vị trí sang phải:
for (int positionCounter = 0; positionCounter < 29; positionCounter++) {
// Cuộn 1 vị trí sang phải:
lcd.scrollDisplayRight();
// đặt tốc độ di chuyển của màn hình
delay(500);
}
// Cuộn 16 vị trí sang trái
for (int positionCounter = 0; positionCounter < 16; positionCounter++) {
// Cuộn 1 vị trí sang trái:
lcd.scrollDisplayLeft();
// đặt tốc độ di chuyển của màn hình
delay(500);
}
// delay:
delay(1000);
}
BÀI VIẾT LIÊN QUANXEM THÊM
Cân điện tử dùng Arduino và module HX711
Mạch khóa số điện tử dùng Arduino
Giao tiếp module điều khiển động cơ L298 với Arduino Uno
BÌNH LUẬN Hủy trả lời
Vui lòng nhập bình luận của bạn Vui lòng nhập tên của bạn ở đây Bạn đã nhập một địa chỉ email không chính xác! Vui lòng nhập địa chỉ email của bạn ở đâyLưu tên, email và trang web của tôi trong trình duyệt này cho lần tiếp theo tôi nhận xét.
VPS TỐT NHẤT
Chào các bạn! Website này được tạo ra nhằm mục đích chia sẽ miễn phí những kiến thức liên quan đến lĩnh vực điện tử và IoT. Tôi rất mong nhận được những ý kiến đóng góp của bạn đọc để website ngày càng phát triển và được nhiều người biết đến. Cảm ơn sự quan tâm của các bạn.Liên hệ chúng tôi: [email protected]BÀI VIẾT GẦN ĐÂY
- Giao tiếp module điều khiển động cơ bước TMC2208 với Arduino
- Giới thiệu IC 74LS192 – Hoạt động và ứng dụng
- Giới thiệu IC 74LS76 – Ứng dụng và hoạt động
- Top 5 xu hướng công nghệ hàng đầu năm 2023
- Download phần mềm Fritzing
KÊNH ĐIỆN TỬ VIỆT
© Bản quyền thuộc về Điện Tử ViệtTừ khóa » Sử Dụng Lcd 16x2
-
Tổng Quan LCD 16×2 Và Giao Tiếp I2C LCD Sử Dụng Arduino
-
Điều Khiển LCD1602 Bằng Arduino UNO
-
Giao Tiếp Module LCD 16x2 Với Arduino - ĐIỆN TỬ TƯƠNG LAI
-
Lập Trình Giao Tiếp Màn Hình LCD Với Board Mạch Arduino
-
Tổng Quan LCD 16x2 Và Giao Tiếp I2C LCD Sử Dụng Arduino
-
Tổng Quan LCD1602 Và Giao Tiếp I2C LCD Sử Dụng Arduino - KME
-
Hướng Dẫn Lập Trình Hiển Thị LCD (16x2) Trên Arduino Uno
-
Các Hiệu ứng Code Cơ Bản Của LCD 16x2 Với Arduino
-
Tổng Quan LCD 16x2 Và Giao Tiếp I2C LCD Sử Dụng Arduino - Gauday
-
Giao Tiếp LCD 16x2 I2C Với Arduino Uno | Điện Tử DAT
-
Project 7: Giao Tiếp Arduino Với LCD16x2 - 123doc
-
Hướng Dẫn Sử Dụng Màn Hình LCD 16x2 Với Kít Wifi ESP8266
-
Lập Trình ESP32 Với Arduino IDE → I2C LCD - Công Nghệ Cho Mọi ...
-
Hiển Thị Màn Hình LCD 16x2 Với Arduino Chỉ Sử Dụng 3 Chân
-
Mạch Chuyển đổi I2C Cho LCD - IoTMaker
-
LCD 16x2 Nền Xanh Dương Chữ Trắng Kèm Lcd I2C đã được Hàn Sẵn
-
Mạch Chuyển đổi LCD 16x2, 16X4 Sang Giao Tiếp I2C - Phụ Kiện âm ...