вопрос по выводу информации на 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"...
вместо
18lcd.setCursor(0,0);19lcd.print("VOLUME:");20lcd.print(level);21lcd.setCursor(10,0);22lcd.print("Ltr");напишы