Bài này sẽ giới thiệu các hiệu ứng hiển thị trên LCD với Arduino như hiển thị chữ nhấp nháy, tự động cuốn chữ, chớp tắt con trỏ blink hoặc cursor, chạy chữ từ trái sang phải và ngược lại.
1. Hiệu ứng hiển thị chữ nhấp nháy
Đầu tiên, hiển thị các ký tự trên LCD. Sau đó, tắt màn hình nhưng không làm mất các ký tự trên LCD với hàm noDisplay()
. Rồi cho hiển thị lại màn hình với hàm display()
. Cứ như thế lặp đi lặp lại sẽ tạo nên hiệu ứng chữ nhấp nháy.
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2);
lcd.print("HELLO");
lcd.setCursor(0, 1);
lcd.print("ARDUINO");
}
void loop() {
lcd.noDisplay();//Tắt màn hình và không làm mất các ký tự trên LCD
delay(700);//chờ 0.7 giây
lcd.display();//Hiển thị màn hình trở lại
delay(700);//chờ 0.7 giây
}
Kết quả
2. Hiệu ứng tự động cuốn chữ
Sử dụng hàm autoscroll()
để tạo hiệu ứng tự động cuốn chữ.
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2);
}
void loop() {
//Đưa con trỏ về vị trí (0,0)
lcd.setCursor(0, 0);
//In ra giá trị từ 0 - 9
for (int thisChar = 0; thisChar < 10; thisChar++) {
lcd.print(thisChar);
delay(500);
}
//Đặt con trỏ tới vị trí (16,1)
lcd.setCursor(16, 1);
//Cấu hình hiển thị tự cuộn chữ
lcd.autoscroll();
//IN giá trị từ 0 - 9
for (int thisChar = 0; thisChar < 10; thisChar++) {
lcd.print(thisChar);
delay(500);
}
//Tắt chức năng tự động cuộn
lcd.noAutoscroll();
//Xóa màn hình cho vòng lặp kế tiếp
lcd.clear();
}
Kết quả
3. Hiệu ứng chớp tắt con trỏ
Sử dụng hàm noBlink()
và blink()
để tạo hiệu ứng chớp tắt con trỏ.
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2);
//In thông báo ra LCD
lcd.print("hello, world!");
}
void loop() {
//Tắt blink con trỏ
lcd.noBlink();
delay(3000);
//Bật blink con trỏ
lcd.blink();
delay(3000);
}
Kết quả
4. Hiệu ứng chớp tắt con trỏ dạng dấu gạch
Sử dụng hàm noCursor()
và cursor()
để tạo hiệu ứng chớp tắt con trỏ.
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2);
//In thông báo trên LCD
lcd.print("hello, world!");
}
void loop() {
//Tắt con trỏ
lcd.noCursor();
delay(500);
//Hiện con trỏ
lcd.cursor();
delay(500);
}
Kết quả
5. Hiệu ứng chạy chữ từ trái sang phải và ngược lại
Sử dụng hàm scrollDisplayLeft()
để dịch các ký tự qua trái. Sử dụng hàm scrollDisplayRight()
để dịch các ký tự qua phải. Cứ lặp đi lặp lại như thế sẽ tạo ra hiệu ứng chạy chữ từ trái sang phải và ngược lại.
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2);
lcd.print("HELLO ARDUINO!");
delay(1000);
}
void loop() {
//Cuộn 13 vị trí sang trái
for (int positionCounter = 0; positionCounter < 13; positionCounter++) {
//Cuộn 1 vị trí sang trái
lcd.scrollDisplayLeft();
delay(150);
}
//Cuộn 29 vị trí sang phải
for (int positionCounter = 0; positionCounter < 29; positionCounter++) {
//Cuộn 1 vị trí sang phải
lcd.scrollDisplayRight();
delay(150);
}
//Cuộn 16 vị trí sang trái
for (int positionCounter = 0; positionCounter < 16; positionCounter++) {
// Cuộn 1 vị trí sang trái
lcd.scrollDisplayLeft();
delay(150);
}
delay(1000);
}
Thiết kế phần cứng, lập lưu đồ thuật toán, lập trình điều khiển hiển thị chuỗi ký tự “ LOP 112195.1” hiển thị lên LCD theo yêu cầu sau:
– Nhấn nút dịch trái chuỗi ký tự dịch sang trái
– Nhấn nút dịch phải chuỗi ký tự dịch sang phải
– Nhấn nút dừng LCD trắng
mong anh hướng dẫn đề bài này ạ
Thiết kế phần cứng, lập lưu đồ thuật toán, lập trình điều khiển hiển thị chuỗi ký tự “ LOP 112195.1” hiển thị lên LCD theo yêu cầu sau:
– Nhấn nút dịch trái chuỗi ký tự dịch sang trái
– Nhấn nút dịch phải chuỗi ký tự dịch sang phải
– Nhấn nút dừng LCD trắng
anh có thể giải thích thêm về code phần 5.Cuộn 13 vị trí sang trái là như nào ạ?Vị trí ở dây la gì?Tại sao lại là 13?Có thể thay bằng con số khác được không?Em cảm ơn.
Chào em, hàm
scrollDisplayLeft()
giúp di chuyển nội dung (text và cursor) hiển thị trên màn hình LCD sang trái 1 ô ký tự. Trong ví dụ của bài này là cuộn 13 lần nội dung trên LCD sang trái.Em có thể tham khảo bài về Các ô ký tự trên màn hình LCD để rõ hơn về ô ký tự (vị trí) hiển thị trên LCD.
Em không nhất thiết là cuộn 13 ô ký tự mà em muốn cuộn bao nhiêu thì tùy em mà nếu em cứ cuộn sang bên trái hoài thì em sẽ không thấy nội dung trên màn hình LCD nữa.
Lúc này, em phải cho cuộn sang phải để thấy các ký tự hiển thị lại.
em có bài tập bảo lập trình LCD đếm thời gian nhưng ko biek làm ad chỉ giúp em với ạ
Cụ thể đếm thời gian như thế nào em, đếm kiểu h:m:s hay đếm ngược 59, 58, 57,…,0? Hay lấy thời gian thực hiển thị lên LCD?