c - 如何使用Arduino在LCD上闪烁单个字符而没有延迟()方法?

标签 c arduino delay lcd

所以,我想编写一种方法,可以在不使用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 时,它仅闪烁一次,在其他情况下,它显示 __ 。

如何提供每秒闪烁一次的功能?

最佳答案

下面的代码应该让 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(" ");
   }
}

关于c - 如何使用Arduino在LCD上闪烁单个字符而没有延迟()方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53602625/

相关文章:

c - C语言中从socket读取数据

c - c语言内嵌嵌套的限制: Is there a hard limit on this?

升级系统后 PHP 和 Smarty 编译延迟

c - 使用 tcp ://, 时,不要使用 epgm ://do. 接收消息 为什么?

c - C格式错误的参数过多

c++ - arduino:其他程序不工作

c - '\0' 是否自然出现在文本文件中?

c++ - 如何基于循环迭代器选择函数

jquery - 虽然变量未定义 - 等待

迭代之间的 CSS 动画延迟