如何使用 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 上无延迟()方法闪烁单个字符?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 video_player 上无延迟地连续播放视频?

实用 | 手头上无LCD却又急着开发UI?LCD模拟器了解一下~

实用 | 手头上无LCD却又急着开发UI?LCD模拟器了解一下~

实用 | 手头上无LCD却又急着开发UI?LCD模拟器了解一下~

lcd1602如何与arduino进行连接

Arduino应用开发——LCD显示GIF动图