Как мигать одним символом без задержки () методом на ЖК-дисплее с помощью Arduino?
Итак, я хочу написать метод, который может обеспечить мигание на ЖК-дисплее в особой возможности специального значения без использования метода 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 ответ
Решение
Этот следующий код должен позволять 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(" ");
}
}