【发布时间】:2021-10-14 00:16:03
【问题描述】:
我买了一个新的 LCD 16*2,最后一个用这个代码运行得很好:
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup()
{
analogWrite(6, 20);
lcd.begin(16, 2);
}
void loop()
{
lcd.setCursor(0, 0);
lcd.print("Hello Friends");
}
但是现在一个新的 LCD 不能很好地使用这个代码并显示随机字符,这些字符在 LCD 上快速移动,如下所示:
当我添加delayMiroseconds() 时,它运行良好,并且延迟了多少秒都没关系。
您能帮忙消除代码末尾的延迟吗?我应该怎么做才能使这段代码像以前一样正常运行?
【问题讨论】:
-
确实有必要将文本多次写入显示器吗?如果将循环代码移动到 setup() 会发生什么?
-
您还应该在使用analogWrite() 之前将引脚6 设置为输出引脚。见这里:arduino.cc/reference/en/language/functions/digital-io/pinmode
-
@GRitchie “在调用analogWrite() 之前,您无需调用pinMode() 将引脚设置为输出。”来自arduino.cc/reference/en/language/functions/analog-io/…
-
阅读数据表。如果他们的行为不同,你不知道为什么吗?为什么你认为这部分应该像你上次试验的一样工作?
-
您的问题与
analogWrite(6,...有关吗?