清除残留数字
本课属于 Coddy Arduino 学习旅程的“显示器与传感器”单元。第 9 课,共 24 课。
新数字只会替换相同数量的字符。打印 10,返回后打印 9,屏幕上会显示 90:9 覆盖了 1,而 0 从未被覆盖。
有两种解决方法。简单的方法是:在数字后打印几个空格,覆盖较长数字留下的内容:
lcd.setCursor(0, 1);
lcd.print(reading);
lcd.print(" "); // 覆盖最多 4 位旧数字另一种方法是使用 lcd.clear(),它会清空整个屏幕,并将光标移到左上角。它也会清除你打印的其他所有内容,所以你必须重新打印所有内容,而且每秒清屏多次会导致屏幕闪烁。对于一个不断变化的数字,使用空格更好。
挑战
简单底行会显示旋钮读数,但把旋钮从 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);
}
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
显示器与传感器中的所有课
自己练习: Arduino 在线编辑器