简体   繁体   English

如何使用Arduino在LCD上无延迟地闪烁单个字符()方法?

[英]How blink single character without delay() method on LCD using Arduino?

So, I want to write method than can provide blinking on LCD in special possition a specail value without using delay() method.所以,我想写一种方法,而不是在不使用延迟()方法的情况下,在特殊位置提供特殊值的 LCD 闪烁。 I wrote the next method:我写了下一个方法:

void blink(int cursorIndex, int val) {
   lcd.setCursor(cursorIndex, 0);

   if (millis() - blinkTime > 1000) {
      blinkTime = millis();
      printValOnLCD(val);
   } else {
      lcd.print(" ");
      lcd.print(" ");
   }
}

But it work not in that case that I exectly need.但它在我非常需要的情况下不起作用。 It blink only one time when millis() - blinkTime > 1000 in other cases it show __ .millis() - blinkTime > 1000时它只闪烁一次,在其他情况下它显示 __ 。

How can I provide one blinking per one second??我怎样才能每秒提供一次闪烁?

This following code should let the LCD blink once per second.下面的代码应该让 LCD 每秒闪烁一次。 The blinking speed can be changed by changing the blinkSpeed_ms variable.可以通过更改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(" ");
   }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM