#1.2_LCD 16×02 | LCD 1602 I2C
LCD 1602 I2C là phương án khắc phục được nhược điểm sử dụng quá nhiều chân vi điều khiển khi chỉ dùng LCD 1602. Chuyên mục “STM32 và ngoại vi” hôm nay sẽ tìm hiểu LCD 1602 dùng I2C với module PCF8574 .
———————————
Cùng xem bài viết bên dưới.
LCD 1602 I2C sử dụng với module PCF8574
- LCD1602 ta đã tìm hiểu ở bài viết trước, nếu chưa xem, bạn có thể xem lại “LCD 1602 | #1.1_STM32 và ngoại vi“. 1 màn hình rất cần thiết phải tìm hiểu khi tiếp cận lập trình nhúng.
Tiếp theo là về module PCF8574. Đây là module I2C hỗ trợ các loại LCD sử dụng driver HD44780(LCD 16×2, LCD 20×4,…), vì vậy 1 module có thể sử dụng cho nhiều màn hình LCD khác nhau. Trước khi tìm hiểu về code và lập trình, bạn cần nắm được lý thuyết về I2C qua bài viết “Chuẩn giao tiếp I2C | #1 Giao tiếp điện tử cơ bản”
Trong datasheet của PCF8574 ta chú ý về phần địa chỉ, mặc định 3 chân A0A1A2 không được nối đất (không hàn) ~ mức điện áp cao 111.
- Bạn có thể tải datasheet PCF8574 ở ngay bên dưới.
Thực hành trên STM32cubeIDE
Cấu hình chân
- Đầu tiên là phần cứng, rất đơn giản, module PCF8574 được thiết kế để cắm trực tiếp với LCD như hình bên dưới.
Chân SDA và SCL trên module nối với chân tương ứng trên vi điều khiển khi khởi tạo cubeMX, cụ thể trong bài viết là 2 chân PB7 và PB6.
Thông số và kết nối của các chân lúc này đã xong. 1 số lưu ý:
- Jump đèn nền và biến áp tương phản LCD tích hợp sẵn trên module.
- kiểm tra đúng chân khi kết nối module PCF8574 và LCD 1602
- Khai báo địa chỉ I2C của module mình sử dụng trong thư viện LCD1602.c
Lập trình LCD 1602 I2C và thư viện
- Sau khi tạo code, đầu tiên copy 2 file .c và .h của thư viện i2c-lcd vào như bài trước. Sau đó bắt đầu khai báo địa chỉ I2C. Mặc định khi không động chạm gì vào A0A1A2 là 0x4E.
Các hàm thường sử dụng trong thư viện:
- Chỉ dùng 2 chân SDA và SCL trong giao tiếp I2C
- Nhỏ gọn, tích hợp đèn nền, tương phản ngay trong module
Phần cứng và code
Phần cứng sử dụng STM32F411, LCD 1602 và module PCF8574. Phần mềm sử dụng là stm32cubeIDE. File code ví dụ các bạn tải về bên dưới, phần cứng tại Shoppe.
Ta vừa tìm hiểu về ngoại vi LCD 1602 I2C và là bài viết thứ 2 trong chuyên mục STM32 và ngoại vi. Mong rằng chuyên mục này sẽ giúp nhiều bạn tiếp cận hơn với dòng vi điều khiển STM32.
Trong bài viết tiếp theo ta sẽ tìm hiểu về Servo MG90S. 1 ngoại vi rất rất hay sử dụng trong các dự án nhỏ và lớn.
Các bài viết khác cùng chuyên mục trong “STM32 và ngoại vi“.
Các chuyên mục khác:
Bạn có thắc mắc gì trong bài viết không?
Đánh giá và để lại bình luận bên dưới nhá.