Skip to content
Home » Lcd I2C To Arduino | Giới Thiệu Lcd 16×2

Lcd I2C To Arduino | Giới Thiệu Lcd 16×2

Arduino LCD I2C - Tutorial with Arduino Uno

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.

Troubleshooting on LCD I2C

If the text is not displayed on LCD I2C, please check the following issues:

  1. Adjust the brightness of LCD by rotating potentiometer in the backside of LCD
  2. Depending on manufacturers, the I2C address of LCD may be different. Usually, the default I2C address of LCD is 0x27 or 0x3F. Try these values one by one. If you still failed, run the below code to find the I2C address.

The result on Serial Monitor:

Hiển thị nhiệt độ, độ ẩm lên LCD 16×2 giao tiếp bằng I2C sử dụng Arduino

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

EBOOK ARDUINO CHO NGƯỜI MỚI BẮT ĐẦU

Trong bài viết hôm trước mình đã hướng dẫn các bạn làm thế nào để hiển thị các ký tự lên màn hình LCD 16×2 bằng giao tiếp I2C.

Tiếp tục trong chuỗi bài viết về LCD hôm nay mình sẽ hướng dẫn các bạn làm thế nào để hiển thị các thông số của cảm biến nhiệt độ, độ ẩm lên LCD.

Để hiểu hơn về bài viết này các bạn đọc lại 2 bài viết bên dưới rồi chúng ta tiếp tục bài này tiếp nha.

  • Đọc thêm: Tổng quan LCD 16×2 và giao tiếp I2C LCD sử dụng Arduino
  • Đọc thêm: Đọc nhiệt độ, độ ẩm (DHT11) sử dụng Arduino Uno

About LCD I2C 16×2

In the previous tutorial, we had learned how to use the normal LCD. However, wiring between Arduino and the normal LCD is complicated. Therefore, LCD I2C has been created to simplify the wiring. Actually, LCD I2C is composed of a normal LCD, an I2C module and a potentiometer.

Pinout

LCD I2C uses I2C interface, so it has 4 pins:

  • GND pin: needs to be connected to GND (0V).
  • VCC pin: the power supply for the LCD, needs to be connected to VCC (5V).
  • SDA pin: I2C data signal
  • SCL pin: I2C clock signal

LCD Coordinate

LCD I2C 16×2 includes 16 columns and 2 rows. the conlums and rows are indexed from 0.

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

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é.

Wiring Diagram

This image is created using Fritzing. Click to enlarge image

LCD I2C Arduino Uno, Nano Arduino Mega
Vin 5V 5V
GND GND GND
SDA A4 20
SCL A5 21
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

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.

How To Program For LCD I2C

Thanks to the LiquidCrystal_I2C library, the using LCD is a piece of cake.

  • Include the library:
  • Declare a LiquidCrystal_I2C object with I2C address, the number of columns, the number of rows:
  • Initialize the LCD.
  • Move cursor to the desired position (column_index, row_index)
  • Print a message to the LCD.

There are many things more that we can do with LCD (see Do More with LCD part)

※ NOTE THAT:

The I2C address of LCD can vary according to the manufacturers. In the code, we used 0x27 that is specified by DIYables manufacturer

🔴 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

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

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ế
Arduino | Hướng dẫn sử dụng chi tiết LCD
Arduino | Hướng dẫn sử dụng chi tiết LCD
    • 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()

Tổng quan LCD 16×2 và giao tiếp I2C LCD sử dụng Arduino

Hardware Required

Arduino UNO or Genuino UNO
USB 2.0 cable type A/B
LCD I2C
Jumper Wires
(Optional) 9V Power Adapter for Arduino
(Recommended) Screw Terminal Block Shield for Arduino Uno
(Optional) Transparent Acrylic Enclosure For Arduino Uno

Or you can buy the following sensor kit:

DIYables Sensor Kit 30 types, 69 units
{916} i2c LCD configuration with Arduino UNO in Tinkercad
{916} i2c LCD configuration with Arduino UNO in Tinkercad

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.

Arduino Code

Quick Steps

  • Navigate to the Libraries icon on the left bar of the Arduino IDE.
  • Search “LiquidCrystal I2C”, then find the LiquidCrystal_I2C library by Frank de Brabander
  • Click Install button to install LiquidCrystal_I2C library.
  • Copy the above code and open with Arduino IDE
  • Click Upload button on Arduino IDE to upload code to Arduino
  • See the result on LCD
  • Try modifying text and position
How to use  LCD LCD1602  with I2C module for Arduino - Robojax
How to use LCD LCD1602 with I2C module for Arduino – Robojax

Hiển thị nhiệt độ, độ ẩm lên LCD sử dụng I2C

Màn hình LCD I2C Arduino UNO R3
GND GND
VCC 5V
SDA A4
SCL A5
Cảm biến nhiệt độ, độ ẩm DHT11
VCC 5V
DATA D4
GND GND

Sơ đồ đấu nối

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

Linh kiện Số lượng Shoppe
Arduino Uno R3 Xem ngay
Dây cáp nạp Xem ngay
Màn hình LCD 16×2 Xem ngay
Module I2C LCD 16×2 Xem ngay
Cảm biến nhiệt độ, độ ẩm DHT11 Xem ngay
Bread Board (Bo Test) Xem ngay
Dây cắm ( Đực – Cái) Xem ngay
Dây cắm ( Đực – Cái) Xem ngay
Nguồn 12V/2A Jack DC (Nếu có rồi không cần mua) Xem ngay

Do More with LCD

Custom Character

lcd.print() function supports only ASCII characters. If you want to display a special character or symbol (e.g. heart, angry bird), you need to use the below character generator.

LCD 16×2 can display 32 characters (2 rows and 16 columns). Each character is composed of 40 pixels (8 rows and 5 columns).

The character generator represents a character (40 pixels). You just need to do the following steps:

Result on LCD:

Multiple custom characters

We can create up to 8 custom characters (indexed 0 to 7). The below example creates and displays three characters.

Result on LCD:

Summary: how to use custom character on LCD
  • Use the above character generator to create binary code for the custom character.
  • Declare the binary code for the custom character (copy from above step)
  • Create custom character and assign to an index value (from 0 to 7) in setup() function
  • Print the custom character in LCD anytime, anywhere (in setup() or loop() function)

Other functions

Add the below functions into loop() function one by one. And add delay(5000) after each function

  • Clear LCD screen
  • Move the cursor to the upper-left of the LCD
  • Move the cursor to the a position (column, row)
  • Display the LCD cursor
  • Hides the LCD cursor.
  • Display the blinking LCD cursor
  • Turns off the blinking LCD cursor.
  • And more at LiquidCrystal Library Reference
How to use a 1602 i2c Serial LCD Display with Arduino
How to use a 1602 i2c Serial LCD Display with Arduino

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

Display

A library for I2C LCD displays.
The library allows to control I2C displays with functions extremely similar to LiquidCrystal library. THIS LIBRARY MIGHT NOT BE COMPATIBLE WITH EXISTING SKETCHES.

Maintainer: Marco Schwartz

This library is compatible with the avr architecture so you should be able to use it on the following Arduino boards:

Note: while the library is supposed to compile correctly on these architectures, it might require specific hardware features that may be available only on some boards.

To use this library, open the Library Manager in the Arduino IDE and install it from there.

Arduino – LCD I2C

In this Arduino LCD I2C tutorial, we will learn how to connect an LCD I2C (Liquid Crystal Display) to the Arduino board. LCDs are very popular and widely used in electronics projects for displaying information. There are many types of LCD. This tutorial takes LCD 16×2 (16 columns and 2 rows) as an example. The other LCDs are similar.

Giải thích code

Hàm createChar()

lcd.createChar(1, degree);

Dùng để tạo một ký tự tùy chỉnh để sử dụng trên màn hình LCD 16×2. Tối đa có 8 ký tự được hỗ trợ là 5×8 pixel (được đánh số từ 0 đến 7).Sự xuất hiện của mỗi ký tự tùy chỉnh được chỉ định bởi một mảng gồm 8 byte, 1 byte cho mỗi hàng.

Để hiển thị một ký tự tùy chỉnh trên màn hình ta dùng hàm write() để viết ra con số đó.

Cú pháp

lcd.createChar(số, dữ liệu)

Thông số

lcd: là một biến của kiểu dư liệu LiquidCrystal.

số: tạo ký tự (0 đến 7).

dữ liệu: dữ liệu của các ký tự là pixel.

Hàm isnan()

if (isnan(t) || isnan(h))

Hàm isnan() là hàm trả về true hoặc false nếu giá trị cần kiểm tra không phải là một biểu thức toán học đúng.

Ở đoạn code trên mình kiểm tra xem thử việc đọc giá trị của nhiệt độ hoặc độ ẩm trả về có bị thất bại hay không.

Cú pháp

isnan(double x) ;

Hàm round()

lcd.print(round(t));

Hàm round() là hàm làm tròn của một giá trị nào từ số thập phân làm tròn tới số nguyên gần nhất.

How to ID a Mystery Microcontroller
How to ID a Mystery Microcontroller

Code mẫu

#include

#include

#include LiquidCrystal_I2C lcd(0x3F,16,2); const int DHTPIN = 4; const int DHTTYPE = DHT11; DHT dht(DHTPIN, DHTTYPE); byte degree[8] = { 0B01110, 0B01010, 0B01110, 0B00000, 0B00000, 0B00000, 0B00000, 0B00000 }; void setup() { lcd.init(); lcd.backlight(); lcd.print(“Nhiet do: “); lcd.setCursor(0,1); lcd.print(“Do am: “); lcd.createChar(1, degree); dht.begin(); } void loop() { float h = dht.readHumidity(); float t = dht.readTemperature(); if (isnan(t) || isnan(h)) { } else { lcd.setCursor(10,0); lcd.print(round(t)); lcd.print(” “); lcd.write(1); lcd.print(“C”); lcd.setCursor(10,1); lcd.print(round(h)); lcd.print(” %”); } }

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ế

Keywords searched by users: lcd i2c to arduino

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
I2C Liquid Crystal Displays | Arduino Project Hub
I2C Liquid Crystal Displays | Arduino Project Hub
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
Ultrasonic Sensor With Lcd I2C - Hackster.Io
Ultrasonic Sensor With Lcd I2C – Hackster.Io
How To Interface I2C Lcd With Arduino Nano
How To Interface I2C Lcd With Arduino Nano
How To Interface I2C Lcd Display With Arduino ? - Geeksforgeeks
How To Interface I2C Lcd Display With Arduino ? – Geeksforgeeks
Interfacing An I2C Lcd With Arduino Uno
Interfacing An I2C Lcd With Arduino Uno
In-Depth: Interfacing An I2C Lcd With Arduino
In-Depth: Interfacing An I2C Lcd With Arduino
Arduino - Lcd I2C | Arduino Tutorial
Arduino – Lcd I2C | Arduino Tutorial
How To Use I2C Lcd With Arduino | Very Easy Arduino Lcd I2C Tutorial |  Arduino 16X2 Lcd I2C Tutorial - Youtube
How To Use I2C Lcd With Arduino | Very Easy Arduino Lcd I2C Tutorial | Arduino 16X2 Lcd I2C Tutorial – Youtube
Arduino 16X2 Lcd Display With I2C - Hello World - Hackster.Io
Arduino 16X2 Lcd Display With I2C – Hello World – Hackster.Io
Arduino I2C Lcd 16X2 Interfacing
Arduino I2C Lcd 16X2 Interfacing
How To Interface I2C Lcd With Arduino Nano
How To Interface I2C Lcd With Arduino Nano
How To Interface I2C Lcd Display With Arduino ? - Geeksforgeeks
How To Interface I2C Lcd Display With Arduino ? – Geeksforgeeks
Temperature Sensor Using Arduino, Lm35 And I2C Lcd - Buildcircuit.Com
Temperature Sensor Using Arduino, Lm35 And I2C Lcd – Buildcircuit.Com
Character I2C Lcd With Arduino Tutorial (8 Examples)
Character I2C Lcd With Arduino Tutorial (8 Examples)
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
I2C 16X2 Arduino Lcd Display Module | The Pi Hut
I2C 16X2 Arduino Lcd Display Module | The Pi Hut
5V Lcd Display With Arduino Due 3.3V I2C : 5 Steps - Instructables
5V Lcd Display With Arduino Due 3.3V I2C : 5 Steps – Instructables
Amazon.Com: Sunfounder Iic I2C Twi 1602 Serial Lcd Module Display  Compatible With Arduino R3 Mega 2560 16X2 : Electronics
Amazon.Com: Sunfounder Iic I2C Twi 1602 Serial Lcd Module Display Compatible With Arduino R3 Mega 2560 16X2 : Electronics
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
Learn To Use Lcd 1602 (I2C & Parallel) With Arduino Uno 📺 - Hackster.Io
Learn To Use Lcd 1602 (I2C & Parallel) With Arduino Uno 📺 – Hackster.Io
Arduino And I2C Lcd In Proteus – Microcontrolere
Arduino And I2C Lcd In Proteus – Microcontrolere

See more here: kientrucannam.vn

Leave a Reply

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