Работа с TFT дисплеем

SanekOD
Offline
Зарегистрирован: 07.03.2020

Здравствуйте!

Начал работать с ардуино 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);

}

 

sadman41
Offline
Зарегистрирован: 19.10.2016

Может быть стоит реже выводить показания?

bwn
Offline
Зарегистрирован: 25.08.2014

SanekOD пишет:

Будем бездумно плодить темы, почикаю все. Здесь не бюро по срочному ответу на вопросы.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Имеете представление о том как часто Вы долбите экран? Поставьте в loop печать времени и полюбуйтесь. Вам и вправду так часто надо?

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

А если убрать строку 31 ?

sadman41
Offline
Зарегистрирован: 19.10.2016

Уберите.

SanekOD
Offline
Зарегистрирован: 07.03.2020

сейчас попробую

 

SanekOD
Offline
Зарегистрирован: 07.03.2020

Здравствуйте,картинка просто замирает,а показатели температуры и влажности по нулям

sadman41
Offline
Зарегистрирован: 19.10.2016

Теперь вы знаете, как проверять свои гипотезы.
Проверьте и мою - пробуйте реже обновлять экран.

SanekOD
Offline
Зарегистрирован: 07.03.2020

Дело в том,что показания должны сниматся раз в секунду,поэтому и пишу сюда.

SanekOD
Offline
Зарегистрирован: 07.03.2020

Извините,не совсем понял Вас.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Вы сделали то, что я просил в #3?

sadman41
Offline
Зарегистрирован: 19.10.2016

Съем показаний с DHT22 раз в секунду не имеет смысла. Collecting Period > 2 sec.

SanekOD
Offline
Зарегистрирован: 07.03.2020

приблизительно раз в секунду.

От моргания избавился,теперь другая проблема-показатели не меняются,а накладываются один на другого.  

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

SanekOD пишет:

-показатели не меняются,а накладываются один на другого.  

Так Вы ж сами убрали строку №31! Зачем? Если её убирать, то надо перепрограммировать вывод, чтобы показания аккуратно заменялись.

SanekOD
Offline
Зарегистрирован: 07.03.2020
SanekOD
Offline
Зарегистрирован: 07.03.2020

Можете подсказать как это сделать?

Буду очень признателен

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Что сделать?

SanekOD
Offline
Зарегистрирован: 07.03.2020

Как перепрограммировать)

sadman41
Offline
Зарегистрирован: 19.10.2016

Санёк, когда вам в дневнике двойку на пятерку переправить (или любой другой неправильный текст на правильный) надо, вы что делаете?

SanekOD
Offline
Зарегистрирован: 07.03.2020

Учусь,но на эту ересь потратил 2 дня,вот и написал сюда по незнанию.

SanekOD
Offline
Зарегистрирован: 07.03.2020

Извините за наглость,но ,пожалуйста,подскажите как реализовать обновление данных.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Вам задали простой вопрос: "когда вам в дневнике двойку на пятерку переправить (или любой другой неправильный текст на правильный) надо, вы что делаете?"

А Вы что несёте?

SanekOD пишет:

Учусь,но на эту ересь потратил 2 дня,вот и написал сюда по незнанию.

Уточню вопрос. Речь идёт не о том, чтобы "исправить", получив новую оценку, а о том, что переправить цифру на бумаге в дневнике. Ещё уточняющий вопрос: Вы всю страницу дневника стираете и заново пишете или только одну цифру?

Если сумеете ответить на этот вопрос, то это и есть ответ "как перепрограммировать".

А пока, хороший совет, верните "взад" ту строку и не выпендривайтесь. Если Вы будете обновлять экран на 100 раз в секунду, а раз в в минуту или даже в 5 минут, перерисовка раздражать не будет. Нафига Вам обновлять так часто? Вы и впрямь думаете, что у Вас температура и давление  так быстро изменяются? У меня вон метеостанция раз в 10 минут обновляет, а всё остальное время дрыхнет и экономит батарейку.

SanekOD
Offline
Зарегистрирован: 07.03.2020

Спасибо что уделили мне время.

Само собой 1 цифру.

 

sadman41
Offline
Зарегистрирован: 19.10.2016

Ну и как переправить одну цифру на другую в дневнике?

SanekOD
Offline
Зарегистрирован: 07.03.2020

Ребят!

Всем ОГРОМНОЕ СПАСИБО за участие в обсуждении!

Вы мне все очень помогли!

Я нашел решение моей проблемы - просто добавить черный задник у цифр,чтобы он перекрывал старые показатели!