Некоректный вывод данных на дисплее 1602 i2c.
- Войдите на сайт для отправки комментариев
Вс, 25/03/2018 - 01:32
При выводе данных с датчика на дисплей остаются лишние символы.
Например если было показание 20, то если станет 2 , 0 все равно останется на экране. Также если было 124 и станет 50, то будет отображаться 504.
Код прилагаю.
#include <LiquidCrystal_I2C.h> #include <Wire.h> LiquidCrystal_I2C lcd(0x3F,16,2); void setup() { lcd.init(); lcd.backlight(); pinMode(A0, INPUT); } void loop() { int d = analogRead(A0); lcd.setCursor(0, 0); lcd.print(d); delay(500); }
Вы констатировали нормальное поведение дисплея. В какую-то позицию выведен символ. Если он Вам там больше не нужен - стирайте его (выводите в этой позиции пробел). Дисплей сам за Вас это делать не обязан.
А не подскажите, в правильном ли направлении я думаю.
Нужна переменная, куда будет записываться последние показания и при каждом проходе loop она должна сверяться с текущей?
Этим Вы лишние обращения к дисплею уберёте, но к отображению значений это отношения не имеет. Вы же знаете диапазон значений Вашего датчика, допустим это трёхзначное число. Вот и дополняйте выводимое на экран строковое значение до трёх символов пробелами слева или справа по вкусу.
Если уж сами не сообразите, вот аналогичная тема для примера http://arduino.ru/forum/programmirovanie/problema-s-vyvodom-znacheniya-peremennykh-na-lcd-16x2 Вы не первый :)