Проблема выводом температуры на MEGA 3,2" TFT LCD и 18B20
- Войдите на сайт для отправки комментариев
Втр, 26/03/2019 - 02:24
Доброе время суток!
Я начинающий, прошу помошть. При понижений температуры с двух цифр на одно, на LCD появляется лишние цифры, после негативных темп. ещо болше. после RESET свё становится на свои места!
Как решить проблему?
На фото паказание LCD , стартовая темп 18'C , верхнем ряду целое значение, в втором, ц одной децяткой.
Мой скеч.
#include <OneWire.h> #include <DallasTemperature.h> #include <UTFT.h> #include <avr/pgmspace.h> #define ONE_WIRE_PIN 4 OneWire ds(ONE_WIRE_PIN); DallasTemperature sensors(&ds); extern uint8_t SmallFont[]; extern uint8_t BigFont[]; extern uint8_t SevenSegNumFont[]; UTFT myGLCD(CTE32HR, 38, 39, 40, 41); void setup(void) { Serial.begin(9600); sensors.begin(); myGLCD.InitLCD(); myGLCD.clrScr(); myGLCD.setFont(BigFont); myGLCD.setColor(255, 155, 005); myGLCD.print("TEPERATURE", LEFT, 70); } void loop(void) { sensors.requestTemperatures(); Serial.print("Temp: "); Serial.println(sensors.getTempCByIndex(0)); Serial.println(); myGLCD.setFont(BigFont); myGLCD.printNumI(sensors.getTempCByIndex(0), 220, 70); myGLCD.printNumF(sensors.getTempCByIndex(1), 1, 220, 100); }
ну самое простое, "очищать" старые значения
Добавь в 35ю строку
А самое главное - добавь "М" в TEPERATURE
Спосибо! Функционально заработало, но покозание неприятно мигает :( . Есть какой другой метод?
Добавь в 35ю строку
А самое главное - добавь "М" в TEPERATURE
Добавыл М, непомогло ! :)
так добавьте условие - обновлять данные через... или когда значение изменилось... или их комбинацию...
UPD у Вас по делу и без дела данные перерисовываются на экране слишком часто, программа короткая и цикл слишком быстро исполняется, да и в больших программах никто так не делает - это чисто тестовый вариант, допиливайте
так добавьте условие - обновлять данные через... или когда значение изменилось... или их комбинацию...
UPD у Вас по делу и без дела данные перерисовываются на экране слишком часто, программа короткая и цикл слишком быстро исполняется, да и в больших программах никто так не делает - это чисто тестовый вариант, допиливайте
Так точно! Это тестовой скеч. На нём решил протестировать варианты решение проблемы. Основной скечь намного сложней, пять 18B20 датчики температуры, один BME280, и датчик давление воды на 60 psi. По началу был подключен 20x4 LCD дисплей, всё работало нормально.
Думаю через каких то 5 минут делать RESET
Как это лучше реализовать?
Спосибо!
ресет чего? МК? если его - то дружите с "песиком" закинул себе пару топиков первый, второй. Мне пока без нужды, нет таких проектов, так что туда и вопросы...
Благодарю!
Думаю через каких то 5 минут делать RESET Как это лучше реализовать? Спосибо!
что за бред? Ресет никак не исправит мигание данныых на экране. Да и вообще РЕСЕТ - не метод обеспечения стабильной работы. Это лечение головной боли гильотиной.
Пишите программу грамотно - и ресет не понадобится. Как убрать мерцание экрана - Вам обьяснили.