Menu
CoddyTech

Xóa các chữ số còn sót lại

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 9 trên 24.

Ghi đè lên một con số chỉ thay thế số ký tự bằng độ dài của con số mới. In 10, quay lại, in 9, màn hình sẽ hiện 90: số 9 che số 1, còn số 0 không bị chạm đến.

Có hai cách khắc phục. Cách nhanh: in thêm vài dấu cách sau con số để chúng che đi phần còn lại của con số dài hơn trước đó:

lcd.setCursor(0, 1);
lcd.print(reading);
lcd.print("    ");   // che tối đa bốn chữ số cũ

Cách còn lại là lcd.clear(), lệnh này xóa toàn bộ màn hình và đưa con trỏ về góc trên bên trái. Lệnh này cũng xóa mọi thứ khác bạn đã in, nên bạn phải in lại tất cả, và màn hình bị xóa nhiều lần mỗi giây sẽ nhấp nháy. Với một con số thay đổi, dùng dấu cách sẽ tốt hơn.

challenge icon

Thử thách

Dễ

Hàng dưới hiển thị số đọc từ núm xoay, nhưng khi vặn núm xuống dưới 1023, các chữ số cũ vẫn còn. Hãy sửa như sau:

  • sau khi in số đọc, hãy in các dấu cách để che những chữ số còn sót lại
  • giữ Knob: ở hàng trên

Nhấn Chạy, vặn núm lên xuống, 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);

void setup() {
  lcd.begin(16, 2);
  lcd.print("Knob:");
}

void loop() {
  int reading = analogRead(A0);
  lcd.setCursor(0, 1);
  lcd.print(reading);
  // Số có ít chữ số hơn sẽ để lại các chữ số cũ: sửa lỗi này ở đây
  delay(100);
}
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