我正在使用串行通信将数据显示到我的 4x20 液晶显示器上。当我填满所有行时,我当然需要清除它。我在网上搜索并找到了类似的东西:

Serial.write(27); // ESC command
Serial.print("[2J"); // clear screen command
Serial.write(27);
Serial.print("[H"); // cursor to home command

但它不起作用。我还找到了一个类似 Serial.println(); 的解决方案,但该解决方案(他们称之为作弊)只能在串行监视器上运行。那么有没有可能的解决方案来清除显示或从 LCD 中删除单个字符?

最佳答案

你试过 lcd.clear() 吗?它在文档 here 中说该命令执行以下操作:



显然,您需要 lcd 变量(称为 LiquidCrystal 对象)才能使用此方法。查看如何创建 here 和下面的基本实现。也许您可以在 lcd.print("hello, world!"); 之后添加一个时间延迟,然后添加 lcd.clear();(就像一个基本的概念验证。)

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);

void setup()
{
  lcd.begin(16,1);
  lcd.print("hello, world!");
}

void loop() {}

查看完整的 LiquidCrystal reference 以了解其所有方法和其他示例。

关于arduino - 如何清除 Arduino 中的 LCD?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21121659/

10-12 20:00