Skip to content
Home » Lcd 1602 I2C Arduino | Module I2C Arduino

Lcd 1602 I2C Arduino | Module I2C Arduino

How to Use I2C LCD with Arduino | Very Easy Arduino LCD I2C Tutorial | Arduino 16x2 LCD I2C Tutorial

Code mẫu

#include

#include LiquidCrystal_I2C lcd(0x3F,16,2); void setup() { lcd.init(); lcd.backlight(); lcd.setCursor(2,0); lcd.print(“Arduinokit.vn”); lcd.setCursor(0,1); lcd.print(“Xin chao cac ban”); } void loop() { }

Giải thích code

LiquidCrystal_I2C lcd(0x3F,16,2);

  • Đặt địa chỉ LCD là 0x3F cho màn hình LCD 16×2.
  • 16 là số cột của màn hình (nếu dùng loại màn hình 20×4) thì thay bằng 20.
  • 2 là số dòng của màn hình (nếu dùng loại màn hình 20×4) thì thay bằng 4.

lcd.init();

Khởi động màn hình LCD, bắt đầu cho phép Arduino sử dụng màn hình.

lcd.backlight();

Bật đèn nền LCD 16×2.

lcd.setCursor(2,0);

Đưa con trỏ tới hàng 1, cột 3.

Lưu ý: giá trị hàng và cột bắt đầu từ số 0 có nghĩa 0 là hàng(cột) 1.

lcd.print(“Arduinokit.vn”);

Xuất ra dòng chữ Arduinokit.vn tại vị trí con trỏ ở hàng 1, cột 3.

lcd.setCursor(0,1); lcd.print(“Xin chao cac ban”);

Đoạn code này thì tương tự như trên, xuất ra dòng chữ “Xin chao cac ban” tại vị trí con trỏ ở hàng 2, cột 1.

Bây giờ thì các bạn upload chương trình và xem kết quả nhé.

Module I2C Arduino

LCD có quá nhiều nhiều chân gây khó khăn trong quá trình đấu nối và chiếm dụng nhiều chân trên vi điều khiển.

Module I2C LCD ra đời và giải quyết vấn để này cho bạn.

Thay vì phải mất 6 chân vi điều khiển để kết nối với LCD 16×2 (RS, EN, D7, D6, D5 và D4) thì module IC2 bạn chỉ cần tốn 2 chân (SCL, SDA) để kết nối.

Module I2C hỗ trợ các loại LCD sử dụng driver HD44780(LCD 16×2, LCD 20×4, …) và tương thích với hầu hết các vi điều khiển hiện nay.

Ưu điểm

  • Tiết kiệm chân cho vi điều khiển.
  • Dễ dàng kết nối với LCD.

Thông số kĩ thuật

  • Điện áp hoạt động: 2.5-6V DC.
  • Hỗ trợ màn hình: LCD1602,1604,2004 (driver HD44780).
  • Giao tiếp: I2C.
  • Địa chỉ mặc định: 0X27 (có thể điều chỉnh bằng ngắn mạch chân A0/A1/A2).
  • Tích hợp Jump chốt để cung cấp đèn cho LCD hoặc ngắt.
  • Tích hợp biến trở xoay điều chỉnh độ tương phản cho LCD.

Để sử dụng màn hình LCD giao tiếp I2C sử dụng Arduino thì ta cần cài đặt thư viện Liquidcrystal_I2C. Tại đây

How to Use I2C LCD with Arduino | Very Easy Arduino LCD I2C Tutorial | Arduino 16x2 LCD I2C Tutorial
How to Use I2C LCD with Arduino | Very Easy Arduino LCD I2C Tutorial | Arduino 16×2 LCD I2C Tutorial

Các lỗi thường gặp khi sử dụng I2C LCD

  • Hiển thị một dãy ô vuông.
  • Màn hình chỉ in ra một ký tự đầu.
  • Màn hình nhấp nháy.

Các lỗi này chủ yếu là do sai địa chỉ bus, để fix lỗi các bạn thay địa chỉ mặc định là “0x27” thành “0x3F.

Trong trường hợp vẫn không được các bạn fix lỗi bằng cách nạp code tìm địa chỉ bus của I2C.

Sau khi tìm xong các bạn thay địa chỉ vừa tìm được vào vị trí “0x27” là xong.

  • Các bạn có thể tải code tìm địa chỉ bus ở đây. Tải ngay.

Màn Hình LCD1602 Kết Nối Với I2C: Hướng Dẫn Sử Dụng Dùng Arduino

Link Sản Phẩm:

Module I2C Chuyển Đổi Cho LCD1602 Và LCD2004

Arduino Uno R3 Atmega16U2 ( Tặng Cáp )

Thư Viện LCD:

1. Những điều cần biết về Màn Hình LCD1602

Màn hình LCD1602 là một loại màn hình hiển thị đơn giản nhưng vô cùng hữu ích trong các dự án điện tử. Nếu bạn đang tìm kiếm một màn hình đơn giản để tích hợp vào các dự án điện tử của mình, dưới đây là những điều cần biết về màn hình LCD1602.

  • Cấu tạo và kích thước: Màn hình LCD1602 có kích thước nhỏ gọn, với độ phân giải 16×2 ký tự, có thể hiển thị 2 dòng, mỗi dòng 16 ký tự. Nó bao gồm một bảng điều khiển hiển thị và một bộ điều khiển, được kết nối thông qua một bộ giáp hoặc header đơn giản.
Chân Ký hiệu Mô tả Giá trị
VSS GND 0V
VCC 5V
V0 Độ tương phản
RS Lựa chọn thanh ghi

RS=0 (mức thấp) chọn thanh ghi lệnh

RS=1 (mức cao) chọn thanh ghi dữ liệu

R/W Chọn thanh ghi đọc/viết dữ liệu

R/W=0 thanh ghi viết

R/W=1 thanh ghi đọc

Enable
DB0 Chân truyền dữ liệu 8 bit: DB0DB7
DB1
DB2
10 DB3
11 DB4
12 DB5
13 DB6
14 DB7
15 Cực dương led nền 0V đến 5V
16 Cực âm led nền 0V
  • Cách kết nối: Màn hình LCD1602 có thể được kết nối với các loại vi điều khiển như Arduino và Raspberry Pi thông qua các chân GND, VCC, SDA, SCL, và đôi khi là một số chân khác phụ thuộc vào loại vi điều khiển sử dụng. Điều này giúp cho việc tích hợp màn hình LCD1602 vào các dự án điện tử trở nên dễ dàng hơn.
  • Điều khiển màn hình: Màn hình LCD1602 được điều khiển thông qua một bộ điều khiển. Bộ điều khiển này giúp điều khiển các đèn nền, các ký tự, cũng như các đường kẻ hiển thị trên màn hình.
  • Cách sử dụng: Việc sử dụng màn hình LCD1602 rất đơn giản. Người dùng chỉ cần gửi các tín hiệu điều khiển đến màn hình để hiển thị thông tin mong muốn. Màn hình LCD1602 có thể hiển thị các ký tự ASCII và ký tự đặc biệt, giúp người dùng hiển thị các thông tin đa dạng.
  • Hạn chế: Mặc dù rất hữu ích, màn hình LCD1602 cũng có một số hạn chế. Nó không thể hiển thị nhiều hình ảnh, video hoặc các định dạng phức tạp khác. Hơn nữa, độ phân giải của màn hình LCD1602 không đủ cao để hiển thị các chi tiết phức tạp.

Tóm lại, màn hình LCD1602 là một giải pháp tuyệt vời cho các dự án điện tử đơn giản, với khả năng hiển thị các thông tin cơ bản.

2. Kết nối I2C với màn hình LCD1602 với Arduino

Dưới đây là một số thông tin về việc kết nối màn hình LCD1602 với I2C để sử dụng với Arduino.

  • Sử dụng module I2C cho màn hình LCD1602: Để kết nối màn hình LCD1602 với Arduino thông qua giao diện I2C, ta cần sử dụng một module I2C riêng biệt. Module I2C này sẽ giúp cho việc kết nối trở nên dễ dàng hơn, giảm số lượng chân kết nối cần thiết, cũng như hỗ trợ quá trình lập trình.

  • Thiết lập địa chỉ I2C cho màn hình LCD1602: Màn hình LCD1602 được kết nối với module I2C thông qua hai chân SDA (Data) và SCL (Clock). Để Arduino có thể nhận diện được module I2C, ta cần xác định địa chỉ của module, thông thường sẽ là địa chỉ 0x27.

  • Kết nối màn hình LCD1602 với module I2C: Sau khi xác định được địa chỉ I2C cho module, ta tiến hành kết nối màn hình LCD1602 với module I2C thông qua các chân SDA và SCL. Bên cạnh đó, ta cần kết nối các chân VCC và GND của màn hình LCD1602 với Arduino.

  • Sử dụng thư viện Wire.h: Để điều khiển màn hình LCD1602 qua giao diện I2C, ta cần sử dụng thư viện Wire.h của Arduino. Thư viện này cung cấp các hàm lập trình để gửi dữ liệu qua giao diện I2C.

  • Hiển thị thông tin trên màn hình LCD1602: Sau khi kết nối thành công, ta có thể dễ dàng hiển thị các thông tin mong muốn lên màn hình LCD1602. Ta có thể sử dụng các hàm lập trình trong thư viện Wire.h để gửi các tín hiệu điều khiển và dữ liệu đến màn hình LCD1602.

Trên đây là những thông tin cơ bản về việc kết nối màn hình LCD1602 với I2C để sử dụng với Arduino. Nếu bạn đang tìm kiếm một loại màn hình đơn giản và dễ dàng để tích hợp vào các dự án điện tử của mình,

Vậy cách để hiển thị các ký tự các thông số lên LCD 16×2 như thế nào?

Có dễ dàng hay không?

Qua bài viết hôm nay chúng ta sẽ đi sâu vào tìm hiểu các sử dụng LCD và giao tiếp với module IC2 nhé.

How to use a 1602 i2c Serial LCD Display with Arduino
How to use a 1602 i2c Serial LCD Display with Arduino

Giao tiếp I2C LCD Arduino

Module I2C LCD 16×2 Arduino UNO
GND GND
VCC 5V
SDA A4/SDA
SCL A5/SCL

Sơ đồ đấu nối

Các linh kiện cần thiết cho dự án:

Tên linh kiện Số lượng Shopee
Arduino UNO R3 Mua ngay
Dây cáp nạp Mua ngay
Màn hình LCD 16×2 Mua ngay
Module I2C LCD 16×2 Mua ngay
Dây cắm (Đực – Cái) Mua ngay

Bạn sẽ học được gì

  • Có kiến thức cơ bản về Robotics
  • Chế tạo Robot dò đường thông minh
  • Đánh thức nhà khoa học bên trong bạn
  • Tìm hiểu thêm về Robotics, các thuật toán Robot tự động
  • Kiến thức nền tảng để chế tạo các máy móc tự động phục vụ đời sống sinh hoạt, lao động sản xuất
  • Kiến thức để chế tạo sản phẩm, tham gia các cuộc thi khoa học công nghệ trong nước và quốc tế

Các lỗi thường gặp khi sử dụng I2C LCD

  • Hiển thị một dãy ô vuông.
  • Màn hình chỉ in ra một ký tự đầu.
  • Màn hình nhấp nháy.

Các lỗi này chủ yếu là do sai địa chỉ bus, để fix lỗi các bạn thay địa chỉ mặc định là “0x27” thành “0x3F.

Trong trường hợp vẫn không được các bạn fix lỗi bằng cách nạp code tìm địa chỉ bus của I2C.

Sau khi tìm xong các bạn thay địa chỉ vừa tìm được vào vị trí “0x27” là xong.

  • Các bạn có thể tải code tìm địa chỉ bus ở đây. Tải ngay.
Giao Tiếp I2C Với LCD 16x2 Bằng Arduino Uno R3 | Điện tử DAT
Giao Tiếp I2C Với LCD 16×2 Bằng Arduino Uno R3 | Điện tử DAT

Module I2C Arduino

Module I2C LCD 16×2

LCD có quá nhiều nhiều chân gây khó khăn trong quá trình đấu nối và chiếm dụng nhiều chân trên vi điều khiển.

Module I2C LCD ra đời và giải quyết vấn để này cho bạn.

Thay vì phải mất 6 chân vi điều khiển để kết nối với LCD 16×2 (RS, EN, D7, D6, D5 và D4) thì module IC2 bạn chỉ cần tốn 2 chân (SCL, SDA) để kết nối.

Module I2C hỗ trợ các loại LCD sử dụng driver HD44780(LCD 16×2, LCD 20×4, …) và tương thích với hầu hết các vi điều khiển hiện nay.

Ưu điểm

  • Tiết kiệm chân cho vi điều khiển.
  • Dễ dàng kết nối với LCD.

Thông số kĩ thuật

  • Điện áp hoạt động: 2.5-6V DC.
  • Hỗ trợ màn hình: LCD1602,1604,2004 (driver HD44780).
  • Giao tiếp: I2C.
  • Địa chỉ mặc định: 0X27 (có thể điều chỉnh bằng ngắn mạch chân A0/A1/A2).
  • Tích hợp Jump chốt để cung cấp đèn cho LCD hoặc ngắt.
  • Tích hợp biến trở xoay điều chỉnh độ tương phản cho LCD.

Để sử dụng màn hình LCD giao tiếp I2C sử dụng Arduino thì ta cần cài đặt thư viện Liquidcrystal_I2C. Tại đây

Giới thiệu LCD 16×2

Màn hình LCD 16×2

Thông số kỹ thuật LCD 16×2

LCD 16×2 được sử dụng để hiển thị trạng thái hoặc các thông số.

  • LCD 16×2 có 16 chân trong đó 8 chân dữ liệu (D0 – D7) và 3 chân điều khiển (RS, RW, EN).
  • 5 chân còn lại dùng để cấp nguồn và đèn nền cho LCD 16×2.
  • Các chân điều khiển giúp ta dễ dàng cấu hình LCD ở chế độ lệnh hoặc chế độ dữ liệu.
  • Chúng còn giúp ta cấu hình ở chế độ đọc hoặc ghi.

LCD 16×2 có thể sử dụng ở chế độ 4 bit hoặc 8 bit tùy theo ứng dụng ta đang làm.

🔴 Arduino #26 | Màn Hình LCD 16x2 Kết Hợp Module I2C Hiển Thị Thông Tin
🔴 Arduino #26 | Màn Hình LCD 16×2 Kết Hợp Module I2C Hiển Thị Thông Tin

Lời kết

Qua bài hôm nay các bạn biết cách làm thế nào để hiển thị các ký tự và chuỗi ký tự lên LCD 16×2 và biết cách giao tiếp I2C.

Để nhận được nhiều kiến thức mới các bạn Đăng ký để nhận được thông báo sớm nhất.

Tham gia Cộng đồng Arduino KIT để cùng nhau thảo luận và chia sẽ kiến thức về lập trình Arduino.

Nếu các bạn thấy bài viết bổ ích nhớ Like và Share cho mọi người cùng đọc nhé.

Chúc các bạn thành công.

Trân trọng.

    • Tổng tiền thanh toán:
Code test cơ bản

#include

void loop()

Code Đếm số 0 đến 9 LCD 16×2 I2C

#include

void loop()

Code test cơ bản

#include

void loop()

Code Đếm số 0 đến 9 LCD 16×2 I2C

#include

void loop()

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách giao diện I2C LCD với Arduino và cách hiển thị các ký tự tĩnh, cuộn và tùy chỉnh trên I2C LCD. Màn hình LCD I2C này là một thiết bị 16×2 có nghĩa là nó có thể hiển thị 16 cột bằng hai hàng ký tự. Các ký tự là chữ và số, nhưng bạn có thể tạo các ký tự tùy chỉnh cho đồ họa cơ bản, biểu đồ thanh loại đó. Màn hình LCD có loại bộ điều khiển hd44780 thông thường và nó cũng có mạch I2C được kết nối với nó giúp dễ dàng kết nối với bảng Arduino. Màn hình LCD 16X2 không có mạch I2C có mười sáu chân.

Nhưng nếu chúng ta muốn kết nối bảng này trực tiếp với Arduino, chúng ta phải sử dụng ít nhất tám chân của Arduino, điều này sẽ rất lãng phí. Vì vậy, giải pháp tốt hơn là sử dụng màn hình LCD I2C thay vì màn hình LCD 16×2 thông thường. Trong hướng dẫn này, chúng tôi đang sử dụng 16×2 I2C LCD, nhưng LCD có kích thước bất kỳ cũng sẽ hoạt động giống như cách chúng ta sẽ học trong hướng dẫn này. Ưu điểm của việc sử dụng màn hình LCD I2C là chúng ta chỉ cần sử dụng bốn chân (bao gồm cả chân VCC và GND) của Arduino để kết nối với màn hình này.

Ở mặt sau của màn hình tinh thể lỏng này, bạn cũng có thể thấy một điện trở thay đổi. Biến trở này được sử dụng để sửa đổi độ sáng của màn hình LCD. Chiết áp này rất tiện dụng khi bạn đang sử dụng mô-đun hiển thị này trong các điều kiện ánh sáng khác nhau.

Vì vậy, bây giờ hãy bắt đầu với sơ đồ chân của màn hình này. Màn hình này có bốn chân:

Pin nối đất

Chân Vcc

SDA

SCL

Bây giờ hãy xem cách kết nối màn hình LCD này với Arduino UNO.

Bây giờ chúng ta sẽ thấy sơ đồ nối dây của I2C LCD với Arduino UNO. Sơ đồ nối dây rất đơn giản.

Trong mạch này, chúng tôi đang sử dụng các chân giao tiếp I2C mặc định của Arduino UNO. Trong bo mạch này, A5 là chân SCL mặc định và A4 là chân SDA mặc định cho giao tiếp I2C. Vì vậy, bạn cần kết nối A5 với chân SCL của LCD và A4 với chân SDA của màn hình tinh thể lỏng. Bạn cũng có thể kiểm tra bảng này để biết các kết nối dây.

Arduino UNO

I2C LCD

A5 ·

SCL

A4 ·

SDA

GND ·

GND ·

5V

VIN

Vì vậy, chúng tôi sẽ chuyển sang phần mã hóa. Trước khi viết code, chúng ta cần chuẩn bị Arduino IDE để viết code.

Chúng tôi sẽ giới thiệu thư viện màn hình LCD I2C trong Arduino IDE. Thư viện này không có sẵn trong trình biên dịch. Vì vậy, chúng ta cần cài đặt một thư viện bên ngoài. Có rất nhiều thư viện LCD I2C có sẵn. Bạn có thể sử dụng các thư viện khác nhau nếu muốn. Nhưng trong hướng dẫn này, chúng tôi đang sử dụng thư viện được phát triển bởi johnrickman. Bây giờ thêm thư viện này bằng cách làm theo các bước sau:

Truy cập liên kết và tải xuống thư viện LCD I2C.

Tệp mà bạn tải xuống ở bước cuối cùng sẽ là tệp nén hoặc tệp zip. Bây giờ giải nén tập tin này.

Sau khi giải nén tệp, bạn sẽ nhận được một thư mục có tên LiquidCrystal_I2C-master.

Đổi tên thư mục này LiquidCrystal_I2C-master thành LiquidCrystal_I2C.

Bây giờ hãy đóng phần mềm Arduino, nếu bạn đã mở nó.

Bây giờ sao chép thư mục này bên trong thư mục thư viện của Arduino IDE của bạn.

Bây giờ hãy mở phần mềm Arduino của bạn. Thư viện của bạn sẽ được đưa vào thành công.

Cho đến bây giờ bạn đã cài đặt thành công thư viện và tạo sơ đồ mạch.

Khi bạn kết nối màn hình I2C của mình với Arduino, bạn cần kiểm tra địa chỉ của nó. Bởi vì mọi thiết bị I2C đều có một địa chỉ được liên kết với nó. Đối với nhiều thiết bị của I2C LCD, địa chỉ mặc định được 0x27 trong đó 0x hiển thị định dạng hex của các số. Nhưng địa chỉ có thể khác nhau trong một số trường hợp. Địa chỉ này phụ thuộc vào vị trí của miếng đệm A0, A1 và A2 trên bộ điều khiển I2C trên thiết bị này. Như bạn có thể thấy, chúng tôi có ba miếng hàn, vì vậy chúng tôi có thể có 8 giá trị địa chỉ khác nhau tùy thuộc vào kết nối của miếng đệm.

Pad A0

Pad A1

Pad A2

Địa chỉ HEX

0x27

0x26

0x25

0x24

0x23

0x22

0x21

0x20

Nhưng bạn không cần phải lo lắng về các kết nối bên trong của thiết bị này; Chúng tôi sẽ sử dụng mã được cung cấp bên dưới để kiểm tra địa chỉ của bộ điều khiển. Bây giờ sao chép mã này và tải nó lên bảng của bạn.


#include

// This library includes I2C communication functions


void setup() {


Wire.begin();


Serial.begin(115200);


Serial.println("Scanning for I2C devices");


void loop() {


byte error_i2c, address_i2c;


int I2C_Devices;


Serial.println("Scanning started");


I2C_Devices = 0;


for(address_i2c = 1; address_i2c < 127; address_i2c++ )


Wire.beginTransmission(address_i2c);


error_i2c = Wire.endTransmission();


if (error_i2c == 0) {


Serial.print("I2C device found at address_i2c 0x");


if (address_i2c<16)


Serial.print("0");


Serial.println(address_i2c,HEX);


I2C_Devices++;


else if (error_i2c==4)


Serial.print("Unknow error_i2c at address_i2c 0x");


if (address_i2c<16)


Serial.print("0");


Serial.println(address_i2c,HEX);


if (I2C_Devices == 0)


Serial.println("No I2C device connected \n");


else {


Serial.println("done I2C device searching\n");


delay(2000);

Mã này sẽ tìm kiếm các thiết bị được kết nối bằng chân A4 và A5 và hiển thị kết quả của nó trên màn hình nối tiếp. Sau khi kết nối thiết bị với Arduino đúng cách, bạn sẽ nhận được thông báo này trên màn hình nối tiếp. Thông báo này hiển thị địa chỉ của màn hình tinh thể lỏng được 0x27. Rất có thể bạn sẽ nhận được cùng một địa chỉ cho LCD với 16 cột và 2 hàng.

Trong phần này, chúng ta sẽ hiển thị một thông báo tĩnh trên màn hình.


#include


int totalColumns = 16;


int totalRows = 2;


LiquidCrystal_I2C lcd(0x27, totalColumns, totalRows);


void setup(){


lcd.init();


lcd.backlight(); // use to turn on and turn off LCD back light


void loop()


lcd.setCursor(0, 0);


lcd.print("Microcontrollers");


lcd.setCursor(0,1);


lcd.print("I2C LCD tutorial");


delay(1000);


lcd.clear();


lcd.setCursor(0, 0);


lcd.print("Static text");


delay(1000);


lcd.setCursor(0,1);


lcd.print("I2C LCD tutorial");


delay(1000);


lcd.clear();

Mã này sẽ hiển thị thông báo “Vi điều khiển” ở hàng đầu tiên và “Hướng dẫn LCD I2C” ở hàng thứ hai trong một giây. Sau đó, nó sẽ xóa màn hình LCD và hiển thị “Văn bản tĩnh” ở hàng đầu tiên và “Hướng dẫn LCD I2C” ở hàng thứ hai như hình dưới đây.

Bây giờ chúng ta sẽ thấy hoạt động của code. Dòng này sẽ thêm thư viện trong mã.


#include

Hai biến này xác định tên của tổng số hàng và cột của màn hình mà trong trường hợp của chúng tôi là 16×2. Nếu bạn muốn sử dụng màn hình có kích thước khác, bạn cần thay đổi số ở đây cho phù hợp, ví dụ: màn hình 20×4.


int totalColumns = 16;


int totalRows = 2;

Dòng này được sử dụng để khởi tạo thư viện với địa chỉ LCD, tổng số cột và hàng. Đối số đầu tiên của hàm này là một địa chỉ mà chúng ta đã tìm thấy trong ví dụ trước. Đối số thứ hai và thứ ba là kích thước tính theo số cột và số hàng.


LiquidCrystal_I2C lcd(0x27, totalColumns, totalRows);

Bên trong setup(), đầu tiên chúng ta khởi tạo màn hình LCD với các tham số nêu trên.


lcd.init();

Chức năng backlight() này được sử dụng để bật hoặc tắt đèn nền. Mỗi màn hình LCD đều có đèn nền tích hợp bên trong, vì vậy bạn có thể điều khiển nó thông qua chức năng này.


lcd.backlight();

Trong phần loop(), code được sử dụng để hiển thị thông báo và cũng để xóa thông báo cho LCD. Để hiển thị bất kỳ văn bản nào trên LCD, trước tiên, bạn cần đặt vị trí con trỏ. Vị trí con trỏ xác định nơi bạn muốn hiển thị văn bản. Hàm setCursor() được sử dụng để thiết lập vị trí. Ví dụ: nếu bạn muốn đặt con trỏ thành hàng đầu tiên và cột đầu tiên, bạn sẽ sử dụng chức năng này như sau:


lcd.setCursor(0,0);

Nếu bạn muốn đặt con trỏ thành cột đầu tiên và hàng thứ hai, bạn sẽ sử dụng chức năng này như sau:


lcd.setCursor(0,1);

Giá trị đầu tiên bên trong hàm này xác định số cột và giá trị thứ hai xác định số hàng. Vì vậy, bên trong vòng lặp (), đầu tiên chúng ta đặt con trỏ thành hàng đầu tiên và cột thứ hai. Sau đó lcd.print() sẽ hiển thị thông báo “Microcontrollers” ở hàng đầu tiên.


lcd.setCursor(0, 0);


lcd.print("Microcontrollers");

Tương tự, hai dòng này sẽ đặt con trỏ đến hàng thứ hai và hiển thị văn bản “Hướng dẫn LCD I2C” trên hàng thứ hai. Trong một giây, cùng một văn bản sẽ được hiển thị ở hàng thứ nhất và thứ hai. Độ trễ() được sử dụng để thêm độ trễ của một giây.


lcd.setCursor(0,1);


lcd.print("I2C LCD tutorial");


delay(1000);


Sau khi đợi một giây, clear() sẽ xóa văn bản.


lcd.clear();

Bây giờ phần khác của mã cũng hoạt động theo cách tương tự.


lcd.setCursor(0, 0); // move cursor to starting position


lcd.print("Static text"); // display text " Static text"


lcd.setCursor(0,1); // move the curos to second row


lcd.print("I2C LCD tutorial"); //display a string


delay(1000); // add delay of 1 second


lcd.clear(); // clear the screen

Để xem trình diễn của dự án này, hãy tải mã lên bảng của bạn. Tuy nhiên, trước khi tải mã lên, hãy đảm bảo chọn Arduino Uno từ Tools > Board và cũng chọn đúng cổng COM mà bo mạch được kết nối từ Tools > Port.

Sau khi mã được tải lên bảng, hãy điều chỉnh độ sáng của màn hình thông qua chiết áp cho đến khi LCD bắt đầu hiển thị các thông báo:

Mở Arduino IDE của bạn và đi tới Tệp > Mới. Một tệp mới sẽ mở ra. Sao chép mã được cung cấp bên dưới trong tệp đó và lưu nó.

Trong phần này, chúng ta sẽ hiển thị thông báo cuộn trên màn hình.


#include


int totalColumns = 16;


int totalRows = 2;


LiquidCrystal_I2C lcd(0x27, totalColumns, totalRows);


String staticMessage = "I2C LCD Tutorial";


String scrollingMessage = "Welcome to Microcontrollerslab! This is a scrolling message.";


void scrollMessage(int row, String message, int delayTime, int totalColumns) {


for (int i=0; i < totalColumns; i++) {


message = " " + message;


message = message + " ";


for (int position = 0; position < message.length(); position++) {


lcd.setCursor(0, row);


lcd.print(message.substring(position, position + totalColumns));


delay(delayTime);


void setup(){


lcd.init();


lcd.backlight();


void loop(){


lcd.setCursor(0, 0);


lcd.print(staticMessage);


scrollMessage(1, scrollingMessage, 250, totalColumns);

Dòng này sẽ thêm thư viện trong mã.


#include

Hai biến này xác định tên của tổng số hàng và cột của màn hình mà trong trường hợp của chúng tôi là 16×2. Nếu bạn muốn sử dụng màn hình có kích thước khác, bạn cần thay đổi số ở đây cho phù hợp, ví dụ: hiển thị 20×4.


int totalColumns = 16;


int totalRows = 2;

Dòng này được sử dụng để khởi tạo thư viện với địa chỉ LCD, tổng số cột và hàng. Đối số đầu tiên của hàm này là một địa chỉ mà chúng ta đã tìm thấy trong ví dụ trước. Đối số thứ hai và thứ ba là kích thước tính theo số cột và số hàng.


LiquidCrystal_I2C lcd(0x27, totalColumns, totalRows);

Tiếp theo, chúng ta sẽ định nghĩa hai biến chuỗi sẽ giữ tĩnh và thông báo cuộn mà chúng ta sẽ hiển thị trên màn hình LCD.


String staticMessage = "I2C LCD Tutorial";


String scrollingMessage = "Welcome to Microcontrollerslab! This is a scrolling message.";

Hàm scrollMessage() do người dùng xác định sẽ được sử dụng để cuộn văn bản trên màn hình LCD. Nó có bốn lập luận. Đầu tiên là hàng mà chúng ta sẽ hiển thị thông điệp của mình. Thứ hai là thông báo sẽ được hiển thị. Thứ ba là thời gian trễ sẽ kiểm soát tốc độ của văn bản cuộn. Cuối cùng, đối số thứ tư là tổng số cột của LCD.


void scrollMessage(int row, String message, int delayTime, int totalColumns) {


for (int i=0; i < totalColumns; i++) {


message = " " + message;


message = message + " ";


for (int position = 0; position < message.length(); position++) {


lcd.setCursor(0, row);


lcd.print(message.substring(position, position + totalColumns));


delay(delayTime);

Bên trong setup(), đầu tiên chúng ta khởi tạo màn hình LCD với các tham số nêu trên.


lcd.init();

Chức năng backlight() này được sử dụng để bật hoặc tắt đèn nền. Mỗi màn hình LCD đều có đèn nền tích hợp bên trong, vì vậy bạn có thể điều khiển nó thông qua chức năng này.


lcd.backlight();

Trong phần loop(), trước tiên chúng ta sẽ thiết lập con trỏ và sau đó in thông điệp tĩnh bằng cách sử dụng lcd.print() và truyền staticMessage như một argyment bên trong nó. Sau đó gọi hàm scrollMessage () và chuyển ‘1’ làm hàng bắt đầu, ‘scrollingMessage’ làm thông báo sẽ được hiển thị, thời gian trễ 250ms và chỉ định ‘totalColumns’ của màn hình LCD.


void loop(){


lcd.setCursor(0, 0);


lcd.print(staticMessage);


scrollMessage(1, scrollingMessage, 250, totalColumns);

Để xem trình diễn của dự án này, hãy tải mã lên bảng. Tuy nhiên, trước khi tải mã lên, hãy đảm bảo chọn Arduino Uno từ Bảng > Công cụ và cũng chọn đúng cổng COM mà bo mạch được kết nối từ Công cụ > Cổng.

Sau khi mã được tải lên bảng, hãy điều chỉnh độ sáng của màn hình thông qua chiết áp cho đến khi LCD bắt đầu hiển thị các thông báo:

Trong phần này, chúng tôi sẽ hiển thị các ký tự tùy chỉnh trên màn hình LCD.

Đối với màn hình LCD 16×2 mà chúng tôi đang sử dụng, chúng tôi cũng có tùy chọn hiển thị các ký tự tùy chỉnh. Trong màn hình LCD cụ thể này, mỗi khối bao gồm 5×8 pixel. Chúng có thể được sử dụng để hiển thị các ký tự tùy chỉnh bằng cách đặt trạng thái của mỗi pixel bằng cách bên trong một biến byte.

Có một cách rất đơn giản để tạo biến byte của ký tự tùy chỉnh của riêng bạn. Đi tới trình tạo ký tự tùy chỉnh sau:

Chỉ định ký tự tùy chỉnh bạn muốn hiển thị bằng cách nhấp vào các pixel trong khối 5×8 pixel và biến byte tương ứng sẽ được tạo.

Trong trường hợp của chúng tôi, chúng tôi sẽ hiển thị ký tự ‘+’ trên màn hình. Đây là biến byte mà chúng tôi sẽ sử dụng trong mã chương trình của mình để hiển thị ký tự cụ thể này trên màn hình LCD.

Mở Arduino IDE của bạn và đi tới Tệp > Mới. Một tệp mới sẽ mở ra. Sao chép mã được cung cấp bên dưới trong tệp đó và lưu nó.

Trong bản phác thảo này, chúng tôi sẽ hiển thị một ký tự tùy chỉnh trên màn hình LCD.


#include


int totalColumns = 16;


int totalRows = 2;


LiquidCrystal_I2C lcd(0x27, totalColumns, totalRows);


byte customChar[8] = {


0b00000,


0b00100,


0b00100,


0b11111,


0b00100,


0b00100,


0b00000,


0b00000


};


void setup()


lcd.init();


lcd.backlight();


lcd.createChar(0, customChar);


void loop()


lcd.setCursor(0, 0);


lcd.write(0);

Bao gồm biến byte mà chúng tôi thu được từ trình tạo ký tự tùy chỉnh. Đây là biến byte cho ký tự ‘+’.


byte customChar[8] = {


0b00000,


0b00100,


0b00100,


0b11111,


0b00100,


0b00100,


0b00000,


0b00000


};

Bên trong hàm setup(), chúng ta sẽ tạo ký tự tùy chỉnh bằng cách gọi lcd.createChar() và truyền một số từ 0-7 (vị trí được phân bổ) và biến byte làm tham số bên trong nó.


lcd.createChar(0, customChar);


Bên trong hàm loop(), chúng ta sẽ hiển thị ký tự của mình bằng cách sử dụng lcd.write() và truyền vị trí được phân bổ làm tham số.


void loop()


lcd.setCursor(0, 0);


lcd.write(0);

Để xem trình diễn của dự án này, hãy tải mã lên bảng. Tuy nhiên, trước khi tải mã lên, hãy đảm bảo chọn Arduino Uno từ Tools > Board và cũng chọn đúng cổng COM mà bo mạch được kết nối từ Tools > Port.

Sau khi mã được tải lên bảng, hãy điều chỉnh độ sáng của màn hình thông qua chiết áp cho đến khi LCD bắt đầu hiển thị ký tự:

>>> 100+ Mã Sản Phẩm Dây Rút: https://mecsu.vn/san-pham/day-rut-nhua.5op

>>> 1000+ Mã Sản Phẩm Đầu Cosse: https://mecsu.vn/san-pham/dau-cosse.Q1j

Lời kết

Qua bài hôm nay các bạn biết cách làm thế nào để hiển thị các ký tự và chuỗi ký tự lên LCD 16×2 và biết cách giao tiếp I2C.

Để nhận được nhiều kiến thức mới các bạn Đăng ký để nhận được thông báo sớm nhất.

Tham gia Cộng đồng Arduino KIT để cùng nhau thảo luận và chia sẽ kiến thức về lập trình Arduino.

Nếu các bạn thấy bài viết bổ ích nhớ Like và Share cho mọi người cùng đọc nhé.

Chúc các bạn thành công.

Trân trọng.

Nguồn arduinokit.vn

Khi nhấn nút “Tải Về Máy”, bạn sẽ vào trang quảng cáo, vui lòng chờ 5 giây. Nút

————————————————————————————

DV1 – NHẬN VẼ MẠCH – LẬP TRÌNH 8051/ARDUINO/STM LẤY TRONG NGÀY

BẤM XEM CÁCH ĐẶT HÀNG TẠI ĐÂY

———————————————————————————–

DV2 – Mua linh kiện về làm mạch nhanh – Miễn phí Ship

DV3 – Kênh youtube chia sẻ kiến thức điện tử thực hành ngay

DV4 – Kênh cộng đồng Facebook Điện Tử ChipKool

CÔNG TY ECHIPKOOL – UY TÍN – CHẤT LƯỢNG – NHANH CHÓNG – BẢO MẬT

Arduino LCD I2C - Tutorial with Arduino Uno
Arduino LCD I2C – Tutorial with Arduino Uno

Giao tiếp I2C LCD Arduino

Module I2C LCD 16×2

Arduino UNO

GND

GND

VCC

5V

SDA

A4/SDA

SCL

A5/SCL

Sơ đồ đấu nối

Sơ đồ đấu nối giao tiếp IC2 với LCD 16×2.

Các linh kiện cần thiết cho dự án:

  • Arduino UNO: Xem sản phẩm tại đây.
  • Màn hình LCD 16×2: Xem sản phẩm tại đây.
  • Module I2C LCD 16×2: Xem sản phẩm tại đây.

Code mẫu

#include

#include LiquidCrystal_I2C lcd(0x3F,16,2); void setup() { lcd.init(); lcd.backlight(); lcd.setCursor(2,0); lcd.print(“Arduinokit.vn”); lcd.setCursor(0,1); lcd.print(“Xin chao cac ban”); } void loop() { }

Giải thích code

LiquidCrystal_I2C lcd(0x3F,16,2);

  • Đặt địa chỉ LCD là 0x3F cho màn hình LCD 16×2.
  • 16 là số cột của màn hình (nếu dùng loại màn hình 20×4) thì thay bằng 20.
  • 2 là số dòng của màn hình (nếu dùng loại màn hình 20×4) thì thay bằng 4.

lcd.init();

Khởi động màn hình LCD, bắt đầu cho phép Arduino sử dụng màn hình.

lcd.backlight();

Bật đèn nền LCD 16×2.

lcd.setCursor(2,0);

Đưa con trỏ tới hàng 1, cột 3.

Lưu ý: giá trị hàng và cột bắt đầu từ số 0 có nghĩa 0 là hàng(cột) 1.

lcd.print(“Arduinokit.vn”);

Xuất ra dòng chữ Arduinokit.vn tại vị trí con trỏ ở hàng 1, cột 3.

lcd.setCursor(0,1); lcd.print(“Xin chao cac ban”);

Đoạn code này thì tương tự như trên, xuất ra dòng chữ “Xin chao cac ban” tại vị trí con trỏ ở hàng 2, cột 1.

Bây giờ thì các bạn upload chương trình và xem kết quả nhé.

Секреты подключения нескольких LCD экранов к Arduino по I2C
Секреты подключения нескольких LCD экранов к Arduino по I2C

Giới thiệu LCD 16×2

Thông số kỹ thuật LCD 16×2

LCD 16×2 được sử dụng để hiển thị trạng thái hoặc các thông số.

  • LCD 16×2 có 16 chân trong đó 8 chân dữ liệu (D0 – D7) và 3 chân điều khiển (RS, RW, EN).
  • 5 chân còn lại dùng để cấp nguồn và đèn nền cho LCD 16×2.
  • Các chân điều khiển giúp ta dễ dàng cấu hình LCD ở chế độ lệnh hoặc chế độ dữ liệu.
  • Chúng còn giúp ta cấu hình ở chế độ đọc hoặc ghi.

LCD 16×2 có thể sử dụng ở chế độ 4 bit hoặc 8 bit tùy theo ứng dụng ta đang làm.

CHI TIẾT BÀI VIẾT

HƯỚNG DẪN CƠ BẢN ARDUINO UNO R3 KẾT NỐI I2C HIỂN THỊ THÔNG BÁO TRÊN LCD

1. Giới thiệu

Bài viết hướng dẫn các bạn cách kết nối board mạch Arduino Uno R3 kết nối với I2C và LCD và thực hiện lập trình trên Arduino để hiển thị thông báo trên màn hình LCD

2. Thiết bị phần cứng

  • Arduino Uno R3
  • Mạch điểu khiển LCD

Điện áp MAX : 7V

Điện áp MIN : – 0,3V

Hoạt động ổn định : 2.7-5.5V

Điện áp ra mức cao : > 2.4

Điện áp ra mức thấp : <0.4V

Dòng điện cấp nguồn : 350uA – 600uA

Nhiệt độ hoạt động : – 30 – 75 độ C

  • Module giao tiếp I2C

LCD có quá nhiều nhiều chân gây khó khăn trong quá trình đấu nối và chiếm dụng nhiều chân trên vi điều khiển.

Module I2C LCD ra đời và giải quyết vấn để này cho bạn.

Thay vì phải sử dụng 6 chân vi điều khiển để kết nối với LCD 16×2 (RS, EN, D7, D6, D5 và D4) thì module IC2 bạn chỉ cần tốn 2 chân (SCL, SDA) để kết nối.

Module I2C hỗ trợ các loại LCD sử dụng driver HD44780(LCD 16×2, LCD 20×4, …) và tương thích với hầu hết các vi điều khiển hiện nay.

3. Kết nối các thiết bị

4. Kết nối Arduino Uno R3 với máy tính

Kết nối cổng USB từ Arduino đến máy tính

Xác định Port Kết nối : Chuột phải vào My computer trên máy tính 🡪 manager 🡪 Device manager 🡪 check Port ( COM & LPT )

Cấu hình trên phần mềm Arduino 🡪 mở phần mềm Arduino 🡪 chọn tool 🡪 chọn Board

Ở đây mình sử Dụng Board Arduino Uno R3 🡪 chọn Arduino /Genuino Uno

Nhập code

#include

LiquidCrystal_I2C lcd(0x27,16,2);

void setup()

lcd.init();

lcd.backlight();

lcd.setCursor(4,0);

lcd.print(“ITSTARVN”);

lcd.setCursor(0,1);

lcd.print(“Xin chao cac ban”);

void loop()

Thực hiện upload code trên thiết bị Arduino

Kết quả hiển thị thông báo trên màn hình LCD

Thực hiện: Nguyễn Mạnh Cương

Arduino | Hướng dẫn sử dụng chi tiết LCD
Arduino | Hướng dẫn sử dụng chi tiết LCD

Keywords searched by users: lcd 1602 i2c arduino

Tổng Quan Lcd 16X2 Và Giao Tiếp I2C Lcd Sử Dụng Arduino | Arduino Kit
Tổng Quan Lcd 16X2 Và Giao Tiếp I2C Lcd Sử Dụng Arduino | Arduino Kit
Màn Hình Lcd1602 Kết Nối Với I2C: Hướng Dẫn Sử Dụng Ùng Arduino | Linh Kiện  Điện Tử Hoằng Long
Màn Hình Lcd1602 Kết Nối Với I2C: Hướng Dẫn Sử Dụng Ùng Arduino | Linh Kiện Điện Tử Hoằng Long
In-Depth: Interfacing An I2C Lcd With Arduino
In-Depth: Interfacing An I2C Lcd With Arduino
Mô Đun Màn Hình Lcd 1602 1602 Lcd1602+I2C/Iic 16X2 Pcf8574T Pcf8574 Iic I2C  Giao Diện 5V Cho Arduino | Shopee Việt Nam
Mô Đun Màn Hình Lcd 1602 1602 Lcd1602+I2C/Iic 16X2 Pcf8574T Pcf8574 Iic I2C Giao Diện 5V Cho Arduino | Shopee Việt Nam
Module Lcd 1602 Giao Tiếp I2C Linh Kiện 888
Module Lcd 1602 Giao Tiếp I2C Linh Kiện 888
Lcd 1602 Kèm Module I2C Màu Xanh Lá - Nshop
Lcd 1602 Kèm Module I2C Màu Xanh Lá – Nshop
Tổng Quan Lcd 16X2 Và Giao Tiếp I2C Lcd Sử Dụng Arduino | Arduino Kit
Tổng Quan Lcd 16X2 Và Giao Tiếp I2C Lcd Sử Dụng Arduino | Arduino Kit
In-Depth: Interfacing An I2C Lcd With Arduino
In-Depth: Interfacing An I2C Lcd With Arduino
Giao Diện Lcd I2C Với Văn Bản Chạy Trên Màn Hình Arduino Và Các Ký Tự Tùy  Chỉnh | Mecsu.Vn
Giao Diện Lcd I2C Với Văn Bản Chạy Trên Màn Hình Arduino Và Các Ký Tự Tùy Chỉnh | Mecsu.Vn
Learn To Use Lcd 1602 (I2C & Parallel) With Arduino Uno 📺 - Hackster.Io
Learn To Use Lcd 1602 (I2C & Parallel) With Arduino Uno 📺 – Hackster.Io
I2C 1602 Serial Lcd For Arduino & Rpi
I2C 1602 Serial Lcd For Arduino & Rpi
Lcd 1602 Nền Xanh Dương Chữ Trắng 5V Kèm I2C Driver
Lcd 1602 Nền Xanh Dương Chữ Trắng 5V Kèm I2C Driver
Lcd 1602 Kèm Module I2C Màu Xanh Lá - Nshop
Lcd 1602 Kèm Module I2C Màu Xanh Lá – Nshop
I2C Lcd Giao Tiếp Arduino, I2C Lcd Pcf8574 + Lcd1602 + Arduino
I2C Lcd Giao Tiếp Arduino, I2C Lcd Pcf8574 + Lcd1602 + Arduino
Module I2C Chuyển Đổi Cho Lcd1602 Và 2004 Giao Tiếp Arduino | Linh Kiện  Điện Tử 3M
Module I2C Chuyển Đổi Cho Lcd1602 Và 2004 Giao Tiếp Arduino | Linh Kiện Điện Tử 3M
Giao Diện Lcd I2C Với Văn Bản Chạy Trên Màn Hình Arduino Và Các Ký Tự Tùy  Chỉnh | Mecsu.Vn
Giao Diện Lcd I2C Với Văn Bản Chạy Trên Màn Hình Arduino Và Các Ký Tự Tùy Chỉnh | Mecsu.Vn

See more here: kientrucannam.vn

Leave a Reply

Your email address will not be published. Required fields are marked *