Menu
CoddyTech

清除残留数字

本课属于 Coddy Arduino 学习旅程的“显示器与传感器”单元。第 9 课,共 24 课。

新数字只会替换相同数量的字符。打印 10,返回后打印 9,屏幕上会显示 90:9 覆盖了 1,而 0 从未被覆盖。

有两种解决方法。简单的方法是:在数字后打印几个空格,覆盖较长数字留下的内容:

lcd.setCursor(0, 1);
lcd.print(reading);
lcd.print("    ");   // 覆盖最多 4 位旧数字

另一种方法是使用 lcd.clear(),它会清空整个屏幕,并将光标移到左上角。它也会清除你打印的其他所有内容,所以你必须重新打印所有内容,而且每秒清屏多次会导致屏幕闪烁。对于一个不断变化的数字,使用空格更好。

challenge icon

挑战

简单

底行会显示旋钮读数,但把旋钮从 1023 调低后,旧数字还会留在屏幕上。修复这个问题:

  • 显示读数后,打印空格以覆盖剩余数字
  • 让 Knob: 保留在顶行

按“运行”,上下转动旋钮,然后按“检查”。

亲手试试

#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);
  // 数字变短时,旧数字会残留:在这里修复这个问题。
  delay(100);
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

显示器与传感器中的所有课

自己练习: Arduino 在线编辑器