Работа с 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 цифру.
Ну и как переправить одну цифру на другую в дневнике?
Ребят!
Всем ОГРОМНОЕ СПАСИБО за участие в обсуждении!
Вы мне все очень помогли!
Я нашел решение моей проблемы - просто добавить черный задник у цифр,чтобы он перекрывал старые показатели!