вопрос по выводу информации на LCD A1602
- Войдите на сайт для отправки комментариев
Ср, 10/01/2018 - 20:35
добрый вечер!
Уважаемые форумчане прошу помощи в решении вопроса:
Есть емкость с водой, стоит датчик давления, переводит аналог через функцию MAP в литры.
когда обьем воды в емкости становится больше 99 литров(трехзначной цифрой) и вновь возвращается к двухзначной, дальнейшее отоброжение начинает выводиться с десятичной. Очень хочется чтобы отображалось только целое число) Есть подозрение что все очень просто, но гугл не помог и личного опыта не хватае!
сам скетч
#include <LiquidCrystal_I2C.h> // Подключаем библиотеку LiquidCrystal_I2C LiquidCrystal_I2C lcd(0x3f,16,2); // Задаем адрес и размер дисплея #define Pressure A2 // датчик уровня(давления) воды в бочке int level; // уровень воды в бочке int Value; // переменная с датчика уровня(давления) воды в бочке void setup() { lcd.init(); // Инициализация lcd lcd.backlight(); // Включаем подсветку pinMode(Pressure, INPUT); // датчик давления } void loop() { Value = analogRead(Pressure); level = map(Value, 0 , 1023, 75, 220); lcd.setCursor(0,0); lcd.print("VOLUME:"); lcd.print(level); lcd.setCursor(10,0); lcd.print("Ltr"); }
Ну, миллион же способов. Ну, не знаю, ну, поставьте после строки 20
lcd.print(" ");
например.
спасибо)
sharkman89, нет у тебя там никаких десятичных, у тебя переменные целые. просто надо не только писать новые значения, но и стирать старые. либо затирая их пробелами, либо вызывая lcd.clear();
это не "970", это "97" и "0" от предыдущего значения - "100" или "110"...
вместо
18
lcd.setCursor(0,0);
19
lcd.print(
"VOLUME:"
);
20
lcd.print(level);
21
lcd.setCursor(10,0);
22
lcd.print(
"Ltr"
);
напишы