如何使用 Arduino 在 LCD 上无延迟()方法闪烁单个字符?
Posted
技术标签:
【中文标题】如何使用 Arduino 在 LCD 上无延迟()方法闪烁单个字符?【英文标题】:How blink single character without delay() method on LCD using Arduino? 【发布时间】:2018-12-03 22:03:49 【问题描述】:所以,我想编写一个方法,而不是使用 delay() 方法在特殊位置提供特定值的 LCD 闪烁。 我写了下一个方法:
void blink(int cursorIndex, int val)
lcd.setCursor(cursorIndex, 0);
if (millis() - blinkTime > 1000)
blinkTime = millis();
printValOnLCD(val);
else
lcd.print(" ");
lcd.print(" ");
但在这种情况下,我完全需要它。
当 millis() - blinkTime > 1000
在其他情况下它显示 __ 时,它只会闪烁一次。
如何提供每秒钟闪烁一次??
【问题讨论】:
您需要在每次条件为真时切换您的状态。所以写一个函数toggle(bool OnOff)
,想想怎么实现。
大于500ms打印,小于500ms不打印,大于1000ms重置?
【参考方案1】:
下面的代码应该让 LCD 每秒闪烁一次。可以通过更改blinkSpeed_ms
变量来更改闪烁速度。
void blink(int cursorIndex, int val)
lcd.setCursor(cursorIndex, 0);
blinkSpeed_ms = 1000; //This variable defines the blinking speed
if ((millis() - blinkTime > blinkSpeed_ms) && (millis() - blinkTime < blinkSpeed_ms * 2))
printValOnLCD(val);
else if(millis() - blinkTime > (blinkSpeed_ms * 2))
blinkTime = millis()
else
lcd.print(" ");
lcd.print(" ");
【讨论】:
以上是关于如何使用 Arduino 在 LCD 上无延迟()方法闪烁单个字符?的主要内容,如果未能解决你的问题,请参考以下文章
实用 | 手头上无LCD却又急着开发UI?LCD模拟器了解一下~
实用 | 手头上无LCD却又急着开发UI?LCD模拟器了解一下~