Вывод цветного изображения на TFT дисплей
- Войдите на сайт для отправки комментариев
Сб, 21/03/2020 - 17:57
Здравствуйте!
Для моего проекта необходимо выводить много показаний на экранчик,
и я решил сделать для него задний фон
для удобства пользования. Когда нарисовал картинку,попытался вывести ,но никак не выходит.
Буду очень благодарен за помощь !
Код , если он тут вообще нужен :
#include <TFT_HX8357.h> #include <User_Setup.h> #include <DS3231.h> #include "DHT.h" #define BLACK 0x0000 #define DHTPIN 2 #define DHTTYPE DHT22 float ttT ; float hhT ; float ffT ; int avalue=0; int water; int aPin=A1; DHT dht(DHTPIN, DHTTYPE); DS3231 rtc(SDA, SCL); TFT_HX8357 tft = TFT_HX8357(); void setup() { pinMode(A0, INPUT); tft.init(); // Запуск дисплея tft.setRotation(3); // Горизонтальная ориентация экрана dht.begin(); // Запуск датчика температуры tft.fillScreen(TFT_BLUE); // Смена заднего фона дисплея rtc.begin(); //-----------------------------------------------------УСТАНОВКА ВРЕМЕНИ В ЧАСАХ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ rtc.setDOW(TUESDAY); // День недели rtc.setTime(14, 20, 0); // Время (24-часовой формат) rtc.setDate(10, 03, 2020); // Дата } void loop() { avalue=analogRead(aPin); water = analogRead(A0); // переменная "water" находится в интервале от 0 до 1023 tft.setCursor(0,0, 2); // Установка курсора на дисплее //---------------------------------------------------СЧИТІВАНИЕ ПОКАЗАТЕЛЕЙ С ДАТЧИКА ТЕМЕРАТУРІ И ВЛАЖНОСТИ------------------------------------------------------------------------------------------------------------------------------------------------------------------ float hh = dht.readHumidity(); // Влажность float tt = dht.readTemperature(); // Температура в цельсиях float ff = dht.readTemperature(true); // Температура в Фаренгейтах // Если не удалось отсканировать,пробуем ещё if (isnan(hh) || isnan(tt) || isnan(ff)) { return; } //-------------------------------------------------------ВЫВОД ПОКАЗАНИЙ НА ДИСПЛЕЙ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ float hi = dht.computeHeatIndex(ff,hh); tft.setTextColor(TFT_WHITE,TFT_BLUE); tft.setTextSize(2); tft.drawString( rtc.getDOWStr(),10,10,2); // Send date tft.drawString(rtc.getDateStr(),150,10,2); // Send time tft.drawString(rtc.getTimeStr(),350,10,2); tft.drawString("Hum: ",10,100,2); tft.drawFloat(hh,1,85,100,2); tft.drawString("Temp: ",10,145,2); tft.drawFloat(tt,1,85,145,2); tft.drawString("Water:",170,100,2); tft.drawNumber(water ,270,100,2); tft.drawString("Earth",170,175,2); tft.drawNumber(avalue,270,175,2) ; delay (1000); }
Что на картинке изображено?
tft.fillScreen(TFT_BLUE);
// Смена заднего фона дисплея
, - синий фонtft.setTextColor(TFT_WHITE,TFT_BLUE); - белые буквы , с синим знакоместом
Белые буквы должны быть видно, синий цвет их знакоместа такой же как и фон, т.о. "прозрачный" . в чём проблема ?
где в коде картинка ?
// По крайней мере , в UTFT либе можно ставить прозрачный цвет знакоместа у выводимых цифр:
setBackColor(VGA_TRANSPARENT);