Вывод цветного изображения на TFT дисплей

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

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

Для моего проекта необходимо выводить много показаний на экранчик,

и я решил сделать для него задний фон 

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

Буду очень благодарен за помощь ! 

Код , если он тут вообще нужен : 

#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);
}

 

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

Что на картинке изображено?

slider
Offline
Зарегистрирован: 17.06.2014

tft.fillScreen(TFT_BLUE); // Смена заднего фона дисплея , -  синий фон 

tft.setTextColor(TFT_WHITE,TFT_BLUE);   - белые буквы , с синим знакоместом  

Белые буквы должны быть видно, синий цвет их знакоместа такой же  как и фон, т.о. "прозрачный" . в чём проблема ? 

где в коде картинка ? 

 

// По крайней мере , в UTFT либе можно ставить прозрачный цвет знакоместа у выводимых цифр:

setBackColor(VGA_TRANSPARENT);