Màn hình LCD 16×2 là một linh kiện được sử dụng rộng thoải mái trong trong những dự án điện tử cùng lập trình.

Bạn đang xem: Mạch điều khiển màn hình lcd sử dụng giao tiếp i2c


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

Có dễ dãi hay không?

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


*
Màn hình LCD 16×2
LCD 16×2 bao gồm 16 chân trong những số ấy 8 chân dữ liệu (D0 – D7) cùng 3 chân điều khiển (RS, RW, EN).5 chân còn lại dùng để làm cấp nguồn và đèn nền mang lại LCD 16×2.Các chân tinh chỉnh và điều khiển giúp ta dễ dàng thông số kỹ thuật LCD ở cơ chế lệnh hoặc chế độ dữ liệu.Chúng còn làm ta cấu hình ở cơ chế đọc hoặc ghi.

LCD 16×2 rất có thể sử dụng ở chính sách 4 bit hoặc 8 bit tùy theo ứng dụng ta đã làm.

Module I2C Arduino


*
Module I2C LCD 16×2

LCD có vô số nhiều chân gây khó khăn trong quy trình đấu nối và sở hữu nhiều chân bên trên vi điều khiển.

Module I2C LCD ra đời và xử lý vấn để này mang đến bạn.

Thay vì bắt buộc mất 6 chânvi điều khiển để liên kết với LCD 16×2 (RS, EN, D7, D6, D5 cùng D4) thì module IC2 bạn chỉ việc tốn 2 chân (SCL, SDA) để kết nối.


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

Ưu điểm

Tiết kiệm chân đến 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ỉ khoác định: 0X27 (có thể điều chỉnh bằng ngắn mạch chân A0/A1/A2).Tích thích hợp Jump chốt để cung cấp đèn cho LCD hoặc ngắt.Tích hợp thay đổi trở xoay điều chỉnh độ tương phản mang đến LCD.

Để sử dụng màn hình LCD tiếp xúc I2C áp dụng Arduinothì ta cần thiết đặt thư việnLiquidcrystal_I2C. Trên đây


Các lỗi thường chạm mặt 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ý kết tự đầu.Màn hình nhấp nháy.

Các lỗi này chủ yếu là vì sai add bus, nhằm fix lỗi các bạn thay địa chỉ cửa hàng mặc định là “0x27” thành “0x3F.

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


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

Giao tiếp I2C LCD Arduino

Module I2C LCD 16×2Arduino UNO
GNDGND
VCC5V
SDAA4/SDA
SCLA5/SCL

Sơ thứ đấu nối

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

Xem thêm: Bật mí cho bạn top 7 quần áo hàng thùng xịn giá rẻ, quần áo nguyên kiện min house vintage

Các linh kiện quan trọng cho dự án:

Tên linh kiệnSố lượngShopee
Arduino UNO R31Mua ngay
Dây cáp nạp1Mua ngay
Màn hình LCD 16×21 Mua ngay
Module I2C LCD 16×21 Mua ngay
Dây cắn (Đực – Cái)1 Mua ngay

*

Code mẫu

#include #include Liquid
Crystal_I2C
lcd(0x3F,16,2); void setup() lcd.init(); lcd.backlight(); lcd.set
Cursor(2,0); lcd.print("Arduinokit.vn"); lcd.set
Cursor(0,1); lcd.print("Xin chao cac ban");void loop()

Giải mê thích code

Liquid
Crystal_I2C
lcd(0x3F,16,2);Đặt địa chỉ cửa hàng LCD là 0x3F cho màn hình hiển thị LCD 16×2.16 là số cột của màn hình hiển thị (nếu dùng loại màn hình hiển thị 20×4) thì thay bởi 20.2 là số mẫu của màn hình (nếu sử dụng loại screen 20×4) thì thay bởi 4.lcd.init();Khởi động màn hình hiển thị LCD, ban đầu cho phép Arduino thực hiện màn hình.

lcd.backlight();Bật đèn nền LCD 16×2.

lcd.set
Cursor(2,0);Đưa nhỏ trỏ tới sản phẩm 1, cột 3.


Lưu ý: quý giá hàng và cột ban đầu từ số 0 gồm nghĩa 0 là hàng(cột)1.

lcd.print("Arduinokit.vn");Xuấtra chiếc chữArduinokit.vntại vị trí con trỏ ở sản phẩm 1, cột 3.

lcd.set
Cursor(0,1);lcd.print("Xin chao cac ban");Đoạn code này thì giống như như trên, xuất ra loại chữ “Xin chao cac ban”tại vị trí nhỏ trỏ ở sản phẩm 2, cột 1.

Bây giờ thì các bạn upload lịch trình và xem công dụng nhé.


Lời kết

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

Để nhận được không ít kiến thức mới các bạn Đăng ký để dấn được thông tin sớm nhất.

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

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


*


Khi các bạn đăng nhập lần trước tiên bằng nút Đăng nhập xã hội, cửa hàng chúng tôi thu thập thông tin hồ sơ công khai tài khoản của người tiêu dùng được chia sẻ bởi nhà cung ứng Đăng nhập làng hội, dựa trên cài đặt quyền riêng tư của bạn. Shop chúng tôi cũng dìm được địa chỉ email của khách hàng để tự động hóa tạo tài khoản cho mình trong website của bọn chúng tôi. Lúc tài khoản của công ty được tạo, bạn sẽ đăng nhập vào tài khoản này.
Khi chúng ta đăng nhập lần đầu tiên bằng nút Đăng nhập buôn bản hội, công ty chúng tôi thu thập thông tin hồ sơ công khai tài khoản của bạn được chia sẻ bởi nhà hỗ trợ Đăng nhập thôn hội, dựa trên thiết đặt quyền riêng tứ của bạn. Cửa hàng chúng tôi cũng nhận được add email của bạn để auto tạo tài khoản cho bạn trong website của chúng tôi. Khi tài khoản của người tiêu dùng được tạo, các bạn sẽ đăng nhập vào tài khoản này.

Mình nạp vào cơ mà không chạy được ad ạ. Mình đã cắm vào Arduino UNO đúng như lý giải mà nó không hiển thị loại chữ hay là không thực hiện nay lệnh vẫn nạp. Mong mỏi ad chỉ cho


anh ơi, em viết code đếm sản phẩm, khi hiển thị lên lcd, lúc nó đếm nó cứ hiển thị không đúng vị trí, số trường đoản cú hàng đơn vị chức năng nó nhảy đầm qua sản phẩm chục, với lại khi nó hiển thị, nó cứ bị đảo lộn biến và số, e ao ước biến trước số sau, nó cứ nhảy số trước biến nằm đằng sau, anh có thể giúp e sửa lỗi này được ko ạ

Mạch đổi khác giao tiếp I2C cho LCD. Điện áp hoạt động: 2.5V-6V. Biến đổi trở luân phiên độ tương phản cho LCD. Kích thước: 41.5mm(L)X19mm(W)X15.3MM(H)


*

Sơ đồ dùng kết nối:

*

————————CODE THAM KHẢO———————

/*************************************************** Kết nối: I2C UNO R3 MEGA VIN 5V 5V GND GND GND SCL A5 SCL SDA A4 SDA nạp code mở Serial Monitor chọn No line ending, baud 9600. ****************************************************/#include Wire.h>//---------------------------------------------------------------------------void setup() Wire.begin(); Serial.begin(9600); while (!Serial); // Leonardo: wait for serial monitor Serial.println("I2C Scanner"); //-------------------------------------------------------------------------- void loop() byte error, address; int n
Devices; Serial.println("Scanning..."); n
Devices = 0; for(address = 1; address 127; address++ ) // The i2c_scanner uses the return value of // the Write.end
Transmisstion khổng lồ see if // a device did acknowledge to the address. Wire.begin
Transmission(address); error = Wire.end
Transmission(); if (error == 0) Serial.print("I2C device found at address 0x"); if (address16) Serial.print("0"); Serial.print(address,HEX); Serial.println(" !"); n
Devices++; else if (error==4) Serial.print("Unknown error at address 0x"); if (address16) Serial.print("0"); Serial.println(address,HEX); if (n
Devices == 0) Serial.println("No I2C devices found"); else Serial.println("done"); delay(5000); // wait 5 seconds for n

Kết quả

*

Hình ảnh sản phẩm

*
Mạch chuyển Đổi tiếp xúc I2C đến LCD
*
Mạch chuyển Đổi giao tiếp I2C mang lại LCD
*
Mạch chuyển Đổi giao tiếp I2C mang đến LCD