Вывод цветного изображения на 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);