Bài 11. Điều khiển màn hình LCD (Phần 1)
Trong bài này, chúng ta sẽ làm quen với việc kết nối dây và sử dụng màn hình LCD đơn sắc.
Màn hình này có một một đèn LED backlight và có thể hiện thị hai dòng với 16 kí tự trên mỗi dòng. Bạn có thể thấy mỗi khối hình chữ nhật cho mỗi kí tự và các pixel tạo nên kí tự đó. Màn hình này chỉ hiện thỉ màu trắng trên nền xanh và thường được sử dụng để hiện thị văn bản.
Trong bài này, chúng ta sẽ thực hiện một chương trình ví du (example) cho thư viện LCD, nhưng ở bài tiếp theo của chuỗi bài viết này, chúng ta sẽ làm cho màn hình hiển thị thông tin về nhiệt độ và mức độ ánh sáng, sử dụng các cảm biến.
Linh kiện cần thiết
STT | Tên linh kiện | SL | Hình ảnh |
1 | Board Arduino Uno R3 | 1 | |
2 | Dây nguồn USB | 1 | |
3 | Breadboard mini | 1 | |
4 | Màn hình LCD (16×2 kí tự) | 1 | |
5 | Dây căm breadboard | 1 | |
6 | Biến trở 10kΩ | 1 |
Sơ đồ đấu dây
Màn hình LCD cần sáu chân Arduino, tất cả đều phải được đặt là ngõ ra digital. Nó cũng cần kết nối nguồn 5V và GND.
Có một số kết nối cần được thực hiện. Cắm chân đầu tiên của màn hình vào dòng đầu tiên của breadboard nhằm có thể xác định chính xác chân của màn hình mà không cần phải đếm, nhất là khi breadboard có số đếm trên một số dòng của nó. Và lưu ý, đừng quên dây màu vàng kết nối chân giá trị của biến trở đến chân 3 của màn hình. Chân này dùng để điều khiển độ tương phản của màn hình.
Trong một số trường hợp, nhà cung cấp phần cứng thường không hàn các rào cắm vào màn hình. Khi đó, hãy thực hiện hướng dẫn ở phần sau.
Hàn chân cắm vào màn hình
Màn hình cần 16 chân, do đó nếu rào chân dài hơn hãy ngắt nó ra sao cho đạt được độ dài vừa đủ.
Sau đó đặt rào chân vào các vị trí trên màn hình và bắt đầu từ một đầu, hàn từng chân đến hết. Sẽ đơn giản hơn nếu các bạn gắn phần dài của rào vào breadboard, khi đó các đầu chân được giữ thẳng.
Nếu bạn không làm vậy, hãy hàn một chân trước sau đó giữ cho các chân thẳng đứng, làm chảy chì hàn trên chân trước khi điều chỉnh.
Code cho Arduino
Chương trình Arduino IDE đã tích hợp một ví dụ việc sử dụng thư viện LCD mà chúng ta sẽ sử dụng dưới đây. Bạn có thể tìm chúng trong menu File > Examples > Liquid Crystal > Hello World.
Ví dụ này sử dụng các chân khác với của chúng ta, do đó hãy tìm đến dòng lệnh sau:
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
Và đổi thành:
const int rs = 7, en = 8, d4 = 9, d5 = 10, d6 = 11, d7 = 12; LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
Upload đoạn chương trình này vào board Arduino và bạn sẽ thấy dòng tin nhắn “hello, world” hiển thị trên màn hình, sau đó là một số đếm tăng dần từ 0.
Điểm chú ý đầu tiên trong sketch là dòng :
#include <LiquidCrystal.h>;
Dòng lệnh này báo cho Arduino rằng chúng ta sẽ sử dụng thư viện Liquid Crystal (một thư viện giúp cho việc điều khiển LCD trở nên dễ dàng hơn).
Sau đó, chúng ta có dòng lệnh mà chúng ta đã chỉnh sửa ở bước trên. Các dòng lệnh này định nghĩa những chân nào của Arduino dùng để kết nối với các chân của màn hình.
const int rs = 7, en = 8, d4 = 9, d5 = 10, d6 = 11, d7 = 12; LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
Các tham số của dòng khai báo này như sau :
Tên chân màn hình | RS | EN | D4 | D5 | D6 | D7 |
Chân màn hình | 4 | 6 | 11 | 12 | 13 | 14 |
Chân Arduino | 7 | 8 | 9 | 10 | 11 | 12 |
Sau khi upload đoạn code này, hãy lưu ý rằng đền backlight của màn hình sẽ sáng, điều chỉnh biến trở cho đến khi thấy rõ nội dung trên màn hình. Nếu lúc này, màn hình vẫn chưa hiển thị nội dung gì, hãy kiểm tra việc đấu nối dây và thử lại.
Trong hàm ‘setup’, chúng ta có hai dòng lệnh :
lcd.begin(16, 2); lcd.print("hello, world!");
Dòng đầu tiên báo cho thư viên Liquid Crystal về số cột và số dòng mà màn hình có. Dòng thứ hai hiển thị đoạn văn bản mà chúng ta thấy trên dòng đầu tiên của màn hình.
Trong hàm ‘loop’, chúng ta cũng có hai lệnh:
lcd.setCursor(0, 1); lcd.print(millis()/1000);
Dòng đầu tiên xác định vị trí của con trỏ (nơi mà những kí tự tiếp theo sẽ xuất hiện) và cột 0 và dòng 1. Lưu ý rằng, thứ tự của dòng và cột bắt đầu từ 0 chứ không phải từ 1.
Dòng thứ hai hiển thị số giây từ khi Arduino bắt đầu hoạt động hoặc reset.
Mở rộng
Hãy thử nhấn nút reset trên Arduino và để ý rằng, số đếm bắt đầu lại từ 0.
Thử thay đổi lệnh để thay đổi vị trí hiển thị của số đếm vào ngay giữa dòng thứ hai của màn hình.
Trả lời