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

时间:2018-12-03 22:03:50

标签: c arduino delay lcd

因此,我想编写一种方法,可以在特殊情况下在LCD上提供闪烁的特殊值,而无需使用delay()方法。 我写了下一个方法:

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显示__时,它仅闪烁一次。

如何每秒提供一次闪烁?

1 个答案:

答案 0 :(得分: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(" ");
   }
}