Hướng dẫn sử dụng LCD1602 với giao diện I2C - Arduino
Hướng dẫn này trình bày cách kết nối màn hình LCD 1602 với Arduino bằng mô-đun I2C, giúp việc kết nối dễ dàng và gọn gàng hơn so với cách nối dây song song truyền thống. Chỉ với bốn kết nối (VCC, GND, SDA, SCL), bạn có thể điều khiển hoàn toàn màn hình và hiển thị văn bản hoặc dữ liệu cảm biến trong các dự án Arduino của mình.

Tất cả mã cần thiết, sơ đồ nối dây và liên kết tải thư viện được cung cấp bên dưới bài viết này.
LCD1602 với I2C là gì?
LCD1602 là màn hình 16 ký tự, 2 hàng thường được sử dụng trong các hệ thống nhúng. Thông thường, nó cần 6 đến 10 chân để hoạt động, nhưng bằng cách thêm mô-đun I2C, chỉ cần hai đường dữ liệu (SDA và SCL) để giao tiếp. Điều này giúp đơn giản hóa việc nối dây và để lại nhiều chân trống hơn trên Arduino cho các linh kiện khác.
Kết nối LCD1602 với Arduino

Dưới đây là cách nối dây LCD1602 với mô-đun I2C vào Arduino Uno:
-
VCC- 5V
-
GND - GND
-
SDA - A4
-
SCL -A5
Chú thích: LCD1602 được kết nối với Arduino qua I2C chỉ bằng 4 dây.
- Giải thích mã hiển thị văn bản trên LCD
Mã dưới đây khởi tạo LCD, bật đèn nền và in văn bản trong một vòng lặp.
cppCopyEdit#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Đặt địa chỉ LCD là 0x27 cho màn hình 16 ký tự và 2 dòng
LiquidCrystal_I2C lcd(0x27, 16, 2);
-
Wire.h: Cần thiết cho giao tiếp I2C. -
LiquidCrystal_I2C.h: Thư viện điều khiển LCD bằng I2C. -
lcd(0x27, 16, 2): Khởi tạo LCD tại địa chỉ0x27với 16 cột và 2 hàng.
cppCopyEditvoid setup()
{
lcd.begin(); // Khởi tạo LCD
lcd.backlight(); // Bật đèn nền
}
-
lcd.begin()chuẩn bị LCD để sử dụng. -
lcd.backlight()bật đèn nền của màn hình.
cppCopyEditvoid loop()
{
lcd.clear(); // Xóa nội dung trước đó
lcd.print("Robojax"); // In trên dòng đầu tiên
lcd.setCursor(0,1); // Di chuyển con trỏ đến đầu dòng thứ hai
lcd.print("Hello World!"); // In trên dòng thứ hai
delay(500); // Chờ 0,5 giây
}
-
Màn hình được làm mới mỗi nửa giây.
-
Bạn cũng có thể hiển thị dữ liệu khác, như thời gian hoặc giá trị cảm biến.
Cài đặt thư viện cần thiết
Bạn phải cài đặt thư viện LiquidCrystal_I2C:
-
Mở Arduino IDE
-
Đi tới Sketch > Include Library > Manage Libraries
-
Tìm kiếm
LiquidCrystal_I2C -
Nhấp vào Install
Sau khi cài đặt, bạn đã sẵn sàng để biên dịch và tải mã lên.
Các chương trong video
-
00:00 - Bắt đầu
-
00:35 -Giải thích về LCD1602 và Mô-đun I2C
-
04:37 -Giải thích cách nối dây
-
05:35 -Tải thư viện LCD1602-I2C
-
07:13 -Giải thích mã cho LCD1602
/*
This is code for LCD1602 Display with I2C module
* Watch the video for this code https://youtu.be/q9YC_GVHy5A
* Permission granted to share this code given that this
* note is kept with the code.
* Disclaimer: this code is "AS IS" and for educational purposes only.
* This library is based on work done by DFROBOT (www.dfrobot.com).
*/
/*
* This code has been modified from the Arduino library
* Updated by Ahmad Nejrabi on Jan 20, 2018 at 11:09
* in Ajax, Ontario, Canada
* for Robojax.com
*
* This is code for LCD1602 Display with I2C module
* which can display text on the screen.
*/
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup()
{
// Robojax code for LCD with I2C
// initialize the LCD,
lcd.begin();
// Turn on the backlight and print a message.
lcd.backlight();
// Robojax code for LCD with I2C
}
void loop()
{
//start of loop Robojax code for LCD with I2C
lcd.clear();
lcd.print("Robojax");
lcd.setCursor (0,1); // go to start of 2nd line
lcd.print("Hello World!");
//lcd.print(millis() / 1000);
delay(500);
//end of loop Robojax code for LCD with I2C
}
Nghĩ bạn có thể cần
-
eBay
-
AliExpressPurchase Arduino Start Kit from AliExpresss.click.aliexpress.com
-
BanggoodPurchase LCD1602 display from Banggoodbanggood.com
Tài nguyên & tài liệu tham khảo
-
Bên ngoài
-
Bên ngoài
-
Bên ngoài
-
Bên ngoàiPurchase LCD1602 display from Banggoodbanggood.com
Tập tin📁
Thư viện Arduino (tệp nén)
-
LCD1602 LCD Arduino library from Robojax
robojax-LCD1602-I2C-library-master.zip0.01 MB
Tập tin Fritzing
-
LCD LCD1602-I2C module with 4 wires
LCD1602-I2C.fzpz0.01 MB