Thứ Hai, 30 tháng 10, 2023

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

 

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

Arduino Uno Rev3 made in ITALY

 

 

  • Mạch điểu khiển LCD

 

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




 

 

  • 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 16x2 (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 16x2, LCD 20x4, ...) 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

 

 

Cài đặt thư viện

Trước khi có thể tiếp tục, bạn phải cài đặt thư viện LiquidCrystal_I2C . Thư viện này cho phép bạn điều khiển màn hình I2C bằng các chức năng rất giống với thư viện LiquidCrystal.

Để cài đặt thư viện, hãy điều hướng đến Phác thảo > Bao gồm Thư viện > Quản lý Thư viện… Đợi Trình quản lý Thư viện tải xuống chỉ mục thư viện và cập nhật danh sách các thư viện đã cài đặt.

Lọc tìm kiếm của bạn bằng cách nhập ' liquidcrystal '. Hãy tìm thư viện LiquidCrystal I2C của Marco Schwartz . Bấm vào mục đó và sau đó chọn Cài đặt.

 

 

Xác định địa chỉ I2C

Như đã nêu trước đây, địa chỉ I2C của màn hình LCD của bạn phụ thuộc vào nhà sản xuất. Nếu bạn không chắc chắn địa chỉ I2C của LCD là gì, bạn có thể chạy bản phác thảo máy quét I2C đơn giản để quét địa chỉ I2C và trả về địa chỉ của từng thiết bị I2C mà nó tìm thấy. Bạn có thể tìm thấy bản phác thảo này trong File> Examples > Wire > i2c_scanner.

Tải bản phác thảo i2c_scanner vào Arduino IDE của bạn.

Sau khi bạn tải bản phác thảo lên, hãy khởi chạy màn hình nối tiếp ở tốc độ 9600 baud. Bạn sẽ thấy địa chỉ I2C của màn hình LCD I2C.

 

Nhập code 

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,16,2);

void setup()

{

lcd.init();

lcd.backlight();

lcd.setCursor(4,0);

lcd.print("Admin");

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

 

 

https://wokwi.com/projects/379994016785285121

Giải thích mã:

Khởi tạo them thư viện LiquidCrystal_I2C.

#include <LiquidCrystal_I2C.h>

Hàm tạo LiquidCrystal_I2C chấp nhận ba đầu vào: địa chỉ I2C, số cột và số hàng của màn hình.

LiquidCrystal_I2C lcd(0x27,16,2);

Trong quá trình thiết lập, ba chức năng được gọi. 

Chức năng đầu tiên là init(). Nó khởi tạo giao diện với màn hình LCD. 

Chức năng thứ hai là clear(). Chức năng này xóa màn hình LCD và đặt con trỏ ở góc trên bên trái. 

Chức năng thứ ba, backlight(), bật đèn nền LCD.

lcd.init();
lcd.clear();         
lcd.backlight();

Sau đó, hàm này setCursor(2, 0)được gọi để di chuyển con trỏ đến cột thứ ba của hàng đầu tiên. Vị trí con trỏ xác định nơi bạn muốn văn bản mới xuất hiện trên màn hình LCD. Giả sử rằng góc trên bên trái là col=0và row=0.

LCD 16x2 Pinout, Commands, and Displaying Custom Character

lcd.setCursor(2,0);

Tiếp theo, print()hàm này được sử dụng để in “Xin chào” tới màn hình LCD.

lcd.print("Xin chào");

Tương tự, hai dòng mã tiếp theo sẽ di chuyển con trỏ đến cột thứ ba của hàng thứ hai và in 'Hướng dẫn LCD' ra màn hình LCD.

lcd.setCursor(2,1);
lcd.print("123");

Các chức năng hữu ích khác của Thư viện LiquidCrystal_I2C

Có nhiều chức năng hữu ích mà bạn có thể sử dụng với LiquidCrystal_I2C Object. Một số trong số họ được liệt kê dưới đây:

  • lcd.home()chức năng định vị con trỏ ở phía trên bên trái của màn hình LCD mà không xóa màn hình.
  • lcd.blink()hiển thị khối nhấp nháy 5×8 pixel tại vị trí mà ký tự tiếp theo sẽ được ghi.
  • lcd.noBlink()Chức năng tắt con trỏ LCD nhấp nháy.
  • lcd.cursor()hàm hiển thị dấu gạch dưới (dòng) tại vị trí mà ký tự tiếp theo sẽ được viết.
  • lcd.noCursor()chức năng ẩn con trỏ LCD.
  • lcd.scrollDisplayRight()chức năng cuộn nội dung của màn hình sang phải một khoảng trắng. Nếu bạn muốn văn bản cuộn liên tục, bạn phải sử dụng chức năng này trong một forvòng lặp.
  • lcd.scrollDisplayLeft()chức năng cuộn nội dung của màn hình sang trái một khoảng trắng. Tương tự như hàm trên, hãy sử dụng hàm này trong forvòng lặp để cuộn liên tục.
  • lcd.noDisplay()Chức năng tắt màn hình LCD mà không làm mất văn bản hiện được hiển thị trên màn hình.
  • lcd.display()chức năng bật màn hình LCD sau khi nó được tắt bằng noDisplay(). Thao tác này sẽ khôi phục văn bản (và con trỏ) trên màn hình.

 

Không có nhận xét nào:

Đăng nhận xét