如何使用 Arduino 在 LCD 上不使用 delay() 方法闪烁单个字符?
How blink single character without delay() method on LCD using Arduino?
所以,我想编写一种方法,可以在不使用 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(" ");
}
}
所以,我想编写一种方法,可以在不使用 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(" ");
}
}