Работа с TFT дисплеем
- Войдите на сайт для отправки комментариев
Сб, 07/03/2020 - 18:26
Здравствуйте!
Начал работать с ардуино 2 недели назад.
Хотел выводить показатели с датчика температуры и влажности на TFT дисплей.
Показатели выводятся,но при обновлении данных экран моргает.
Хотелось бы устранить эту проблему,имхо сильно режет глаз,но никак не получается.
Вот скетч :
#include <TFT_HX8357.h> #include <User_Setup.h> #include "DHT.h" #define DHTPIN 2 #define DHTTYPE DHT22 DHT dht(DHTPIN, DHTTYPE); TFT_HX8357 tft = TFT_HX8357(); void setup() { tft.init(); tft.setRotation(3); dht.begin(); } void loop() { float hh = dht.readHumidity(); // Read temperature as Celsius float tt = dht.readTemperature(); float ff = dht.readTemperature(true); // Check if any reads failed and exit early (to try again). if (isnan(hh) || isnan(tt) || isnan(ff)) { tft.println("Failed to read from DHT sensor!"); return; } float hi = dht.computeHeatIndex(ff,hh); tft.setCursor(0,0, 2); tft.setTextColor(TFT_WHITE); tft.setTextSize(2); tft.fillScreen(TFT_BLACK); tft.drawString("Humidity: ",0,0,2); tft.drawFloat(hh,1,200,0,2); tft.drawString("Temperature: ",0,100,2); tft.drawFloat(tt,1,200,100,2); }
Может быть стоит реже выводить показания?
Будем бездумно плодить темы, почикаю все. Здесь не бюро по срочному ответу на вопросы.
Имеете представление о том как часто Вы долбите экран? Поставьте в loop печать времени и полюбуйтесь. Вам и вправду так часто надо?
А если убрать строку 31 ?
Уберите.
сейчас попробую
Здравствуйте,картинка просто замирает,а показатели температуры и влажности по нулям
Теперь вы знаете, как проверять свои гипотезы.
Проверьте и мою - пробуйте реже обновлять экран.
Дело в том,что показания должны сниматся раз в секунду,поэтому и пишу сюда.
Извините,не совсем понял Вас.
Вы сделали то, что я просил в #3?
Съем показаний с DHT22 раз в секунду не имеет смысла. Collecting Period > 2 sec.
приблизительно раз в секунду.
От моргания избавился,теперь другая проблема-показатели не меняются,а накладываются один на другого.
-показатели не меняются,а накладываются один на другого.
Так Вы ж сами убрали строку №31! Зачем? Если её убирать, то надо перепрограммировать вывод, чтобы показания аккуратно заменялись.
вот как оно выглядит
https://drive.google.com/open?id=1pvkPmpxRwwTWvInoU6vqOpdWbBKRjhGg
Можете подсказать как это сделать?
Буду очень признателен
Что сделать?
Как перепрограммировать)
Санёк, когда вам в дневнике двойку на пятерку переправить (или любой другой неправильный текст на правильный) надо, вы что делаете?
Учусь,но на эту ересь потратил 2 дня,вот и написал сюда по незнанию.
Извините за наглость,но ,пожалуйста,подскажите как реализовать обновление данных.
Вам задали простой вопрос: "когда вам в дневнике двойку на пятерку переправить (или любой другой неправильный текст на правильный) надо, вы что делаете?"
А Вы что несёте?
Учусь,но на эту ересь потратил 2 дня,вот и написал сюда по незнанию.
Уточню вопрос. Речь идёт не о том, чтобы "исправить", получив новую оценку, а о том, что переправить цифру на бумаге в дневнике. Ещё уточняющий вопрос: Вы всю страницу дневника стираете и заново пишете или только одну цифру?
Если сумеете ответить на этот вопрос, то это и есть ответ "как перепрограммировать".
А пока, хороший совет, верните "взад" ту строку и не выпендривайтесь. Если Вы будете обновлять экран на 100 раз в секунду, а раз в в минуту или даже в 5 минут, перерисовка раздражать не будет. Нафига Вам обновлять так часто? Вы и впрямь думаете, что у Вас температура и давление так быстро изменяются? У меня вон метеостанция раз в 10 минут обновляет, а всё остальное время дрыхнет и экономит батарейку.
Спасибо что уделили мне время.
Само собой 1 цифру.
Ну и как переправить одну цифру на другую в дневнике?
Ребят!
Всем ОГРОМНОЕ СПАСИБО за участие в обсуждении!
Вы мне все очень помогли!
Я нашел решение моей проблемы - просто добавить черный задник у цифр,чтобы он перекрывал старые показатели!