ЖК-дисплей отображает букву "А" вместо 0
Я пытаюсь сделать таймер, который имеет точность до 1 десятой секунды. Однако когда предполагается, что он печатает "0", он будет печатать "А". Например, при печати "10" он будет печатать "1А". Эта программа длится всего несколько секунд. Любое предложение будет высоко оценено, спасибо!
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
unsigned long time2 = 0;
int x = 0;
int a = 0;
int b = 0;
void setup() {
lcd.begin(16,2);
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("00:00:00:0 ");
Serial.begin(9600);
}
void loop() {
unsigned long time1;
time1 = millis();
if (time1 - time2 > 100){
time2 = time1;
lcd.setCursor (9,0);
x=x+1;
lcd.print(x," ");
}
if (x>=10){
x=0;
a=a+1;
lcd.setCursor(7,0);
lcd.print(a,":");
}
if (a>=10){
a=0;
b=b+1;
lcd.setCursor(6,0);
lcd.print(b+a);
}
}
@J. Doe, 👍2
Обсуждение1 ответ
Вот мое предложение: в случаях, когда четкого ответа видно не было, вам нужно шаг за шагом устранять любые слабые места, чтобы еще больше окружить проблему. Поскольку в настоящее время есть ответ более чем на месяц, я предполагаю, что это надлежащая процедура.
Одна слабость, которую я вижу в вашем коде, заключается в том, что вы считаете свои значения x, a, b до десяти, и вы печатаете их или сбрасываете их до нуля, поэтому вы печатаете "x", даже если их десять. Если по какой-либо причине при дальнейшей обработке на дисплее появятся шестнадцатеричные
значения, вы в конечном итоге отобразите "А". Измените свой код так, чтобы значения > 9 не печатались, тогда эта слабость будет устранена.
- Печать string and integer LCD
- Ошибка: "'lcd' does not name a type" при использовании библиотеки LiquidCrystal.
- lcd.createChar() позволяет использовать только 8 произвольных символов
- LCD дисплей не показывает
- Использование модуля JYETech 2.4 Inch LCD Display Screen Module с Arduino?
- Запись значения на 7-сегментный дисплей max7219
- Тахометр на базе Леонардо?
- Как сделать динамическое меню с подменю ( Arduino mega или Arduino Uno)
Подсказка: Проверьте и исправьте инструкцию lcd.print(a,":");, @Mikael Patel
https://www.arduino.cc/reference/en/language/functions/communication/serial/print/, @Juraj