Tác giả: Thợ điện vô duyên - Phạm minh liêm
Hé lô anh em, Vô Duyên lại lên đây!
Bữa nay anh em mình lại tỉ tê chuyện nghề ha.
Anh em muốn tui viết bài thứ chín trong chuyên mục "Vô Duyên - Hỏi Đáp Về Smart Home" với chủ đề "Tự học vi điều khiển" đúng không?
Vụ này thì tui khoái nè, vì nó là cái "cần câu cơm" của tui mà.
Ở bài trước, anh em mình đã biết cách điều khiển nhiều đèn LED bằng mảng và vòng lặp rồi.
Giờ mình học thêm một cái nữa, đó là cách giao tiếp với cái màn hình LCD.
Cái này giống như anh em mình có một cái "bảng thông báo" vậy đó.
Thay vì chỉ có đèn chớp tắt, giờ anh em mình có thể hiển thị chữ, số, giúp cho cái mạch của mình "thông minh" hơn nhiều.
Thôi, không nói nhiều nữa, anh em mình bắt đầu thôi.
Bài 9: Giới thiệu về màn hình LCD 16x2 và cách hiển thị thông tin
1. Màn hình LCD 16x2 là gì?
- Nói thẳng luôn, màn hình LCD 16x2 giống như một cái bảng thông báo nhỏ.
- 16x2 có nghĩa là nó có 16 cột và 2 hàng.
- Nó có thể hiển thị chữ cái, số, và một vài ký tự đặc biệt, giúp anh em mình trực quan hóa dữ liệu từ các cảm biến.
2. Chuẩn bị "đồ nghề"
Để làm bài này, anh em mình cần có:
- Một bo Arduino Uno.
- Một cái breadboard.
- Một màn hình LCD 16x2.
- Một biến trở 10k Ohm (để chỉnh độ tương phản).
- Vài sợi dây nối.
3. Sơ đồ đấu dây
Nói thiệt, cái này quan trọng lắm, anh em làm theo cho kỹ.
Màn hình LCD có nhiều chân, anh em mình phải nối cho đúng.
Chân cấp nguồn:
- VSS (chân 1) nối vào GND của Arduino.
- VDD (chân 2) nối vào 5V của Arduino.
- V0 (chân 3) nối vào chân giữa của biến trở 10k. Hai chân còn lại của biến trở thì nối vào 5V và GND.
- A (anode) (chân 15) nối vào 5V qua một điện trở 220 Ohm.
- K (cathode) (chân 16) nối vào GND.
Chân điều khiển:
- RS (chân 4) nối vào chân số 12 của Arduino.
- RW (chân 5) nối vào **GND**.
- E (chân 6) nối vào chân số 11 của Arduino.
- DB4 (chân 11) nối vào chân số 5 của Arduino.
- DB5 (chân 12) nối vào chân số 4 của Arduino.
- DB6 (chân 13) nối vào chân số 3 của Arduino.
- DB7 (chân 14) nối vào chân số 2 của Arduino.
4. Lập trình và giải thích
Để xài màn hình LCD, anh em mình phải cài thư viện LiquidCrystal.
Vào Sketch -\> Include Library -\> Manage Libraries... gõ "LiquidCrystal" vào ô tìm kiếm và bấm "Install".
Giờ, anh em mình mở phần mềm Arduino IDE lên, rồi copy cái đoạn code dưới đây vào:
// Khai báo thư viện LiquidCrystal
#include <LiquidCrystal.h>
// Khai báo các chân LCD được nối với Arduino
// LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
// Khởi tạo màn hình LCD với 16 cột và 2 hàng
lcd.begin(16, 2);
// In dòng chữ "Hello anh em" lên màn hình
lcd.print("Hello anh em");
}
void loop() {
// Đặt con trỏ về vị trí đầu tiên của hàng thứ hai
lcd.setCursor(0, 1);
// Hiển thị số giây kể từ khi Arduino hoạt động
lcd.print(millis() / 1000);
}
Giải thích:
- "#include <LiquidCrystal.h>":
- Dòng này giống như anh em mình nói với Arduino là "Mày nhớ xài cái thư viện LiquidCrystal nha!".
- "LiquidCrystal lcd(12, 11, 5, 4, 3, 2);":
- Câu này giống như anh em mình đặt tên cho màn hình là "lcd", và dặn nó là các chân RS, E, D4, D5, D6, D7 được nối vào các chân 12, 11, 5, 4, 3, 2 trên bo Arduino.
- "lcd.begin(16, 2);":
- Câu này để khởi động màn hình.
- "lcd.print("Hello anh em");":
- Câu này dùng để in chữ lên màn hình.
- "lcd.setCursor(0, 1);":
- Câu này dùng để di chuyển con trỏ đến một vị trí cụ thể trên màn hình.
- "0" là cột đầu tiên, "1" là hàng thứ hai.
- "millis() / 1000":
- Đây là một hàm có sẵn, nó sẽ trả về số mili giây mà Arduino đã hoạt động.
- Anh em mình chia cho 1000 để nó ra số giây.
Tổng kết
Tóm lại, bài này anh em mình đã biết cách xài màn hình LCD để hiển thị chữ và số.
Cái này rất hay, nó sẽ giúp anh em mình làm mấy cái đồng hồ, nhiệt kế... trong các dự án smart home và điều khiển các thiết bị thông minh.
Nói nhiêu đó đủ rồi.
Hẹn anh em ở bài viết tiếp theo, mình sẽ học cách đọc tín hiệu từ cảm biến ánh sáng và âm thanh!

Đăng nhận xét
Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.