Các hiệu ứng hiển thị trên LCD với board mạch Arduino

Đây là bài 11/17 bài của series môn học Lập trình Arduino cơ bản

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()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ả
Chớp tắt con trỏ trên LCD

4. Hiệu ứng chớp tắt con trỏ dạng dấu gạch

Sử dụng hàm noCursor()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ả
Chớp tắt con trỏ cursor trên Arduino

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);
}
Kết quả
5/5 - (1 bình chọn)
Bài trước và bài sau trong môn học<< Lập trình giao tiếp màn hình LCD với board mạch ArduinoTạo thêm các ký tự mới trên LCD với board mạch Arduino >>
Chia sẻ trên mạng xã hội:

6 bình luận về bài viết “Các hiệu ứng hiển thị trên LCD với board mạch Arduino

  1. 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 ạ

  2. 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

  3. 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.

    1. 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.

    1. 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?

Trả lời

Lưu ý:

1) Vui lòng bình luận bằng tiếng Việt có dấu.

2) Khuyến khích sử dụng tên thật và địa chỉ email chính xác.

3) Mọi bình luận trái quy định sẽ bị xóa bỏ.