Menu
CoddyTech

Vẽ ký tự tùy chỉnh

Thuộc phần Màn hình và cảm biến trong hành trình Arduino của Coddy. Bài học 10 trên 24.

Mỗi ký tự trên LCD là một lưới gồm 5 cột và 8 hàng chấm. Bạn có thể tự thiết kế tối đa tám ký tự, đánh số từ 0 đến 7. Mô tả một ký tự bằng 8 hàng, mỗi hàng là một mẫu 5 bit, trong đó 1 biểu thị một chấm sáng:

byte heart[8] = {
  0b00000,
  0b01010,
  0b11111,
  0b11111,
  0b01110,
  0b00100,
  0b00000,
  0b00000
};

lcd.createChar(0, heart) lưu ký tự đó ở vị trí ký tự 0. lcd.write(byte(0)) vẽ ký tự đó tại vị trí con trỏ. print(0) sẽ vẽ chữ số 0 thay vào đó.

Có một điều dễ nhầm: để lưu một ký tự, thư viện chuyển màn hình sang bộ nhớ ký tự, và màn hình vẫn ở chế độ đó. Mọi nội dung được in tiếp theo sẽ được ghi vào bộ nhớ đó, không phải lên màn hình. Vì vậy, hãy gọi lcd.setCursor() (hoặc lcd.clear()) sau createChar(), trước khi in.

lcd.createChar(0, heart);
lcd.setCursor(0, 0);   // quay lại màn hình
lcd.write(byte(0));
challenge icon

Thử thách

Trung bình

Mẫu ban đầu có thiết kế mặt cười. Hãy chào bằng nó:

  • lưu nó dưới dạng ký tự 0 bằng lcd.createChar()
  • di chuyển con trỏ đến góc trên bên trái
  • in ra Hi (có một dấu cách), rồi vẽ mặt cười

Nhấn Chạy, rồi nhấn Kiểm tra.

Tự làm thử

#include <LiquidCrystal.h>

// RS, E, D4, D5, D6, D7
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

byte smiley[8] = {
  0b00000,
  0b01010,
  0b01010,
  0b00000,
  0b10001,
  0b01110,
  0b00000,
  0b00000
};

void setup() {
  lcd.begin(16, 2);

  // Lưu hình mặt cười dưới dạng ký tự 0, rồi in ra "Hi " và hình mặt cười
}

void loop() {
}
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Màn hình và cảm biến

Tự luyện tập: Playground Arduino