Stránka 1 z 1
TFT LCD 3,2" - různé drivery
Napsal: 17 pro 2017, 17:32
od SC1
Vážení přátelé,
používám tento displej:
https://www.aliexpress.com/item/3-2-TFT ... 0.0.HPTsLH
Jsem s ním spokojen, ovšem narazil jsem na problém s jakousi inovací driveru. Zatímco před časem jsem zakoupil displej s driverem
ILI9327 Special, nyní je v nabídce jako náhrada displej s driverem
HX8352B. Drivery vyžadují rozdílné verze knihovny MCUFRIEND_kbv. Vzájemně nejsou kompatibilní - Číňan mi k tomu napsal, že pokud chci pracovat s novým displejem, musím upgradovat knihovnu a naopak -
pokud nechci knihovnu sám přepsat.
Protože mám rozpracované projekty s oběma verzemi současně, asi mi nezbude, než se o to nějak pokusit. Nejdříve bych se ale rád zeptal zde, zda už někdo nemá tento problém třeba vyřešený... Díky.
Re: TFT LCD 3,2" - různé drivery
Napsal: 17 pro 2017, 18:05
od SC1
Tak rychlé upřesnění, a sorry, že jsem kecal
.
Číňan se mýlil, když se nainstaluje update knihovny [OPEN-SMART] TFT LCD Shield 3.2inch Update HX8352B.rar z tohoto umístění:
https://drive.google.com/drive/folders/ ... lViUkI1Sms, tak to funguje s novým i se staršími verzemi driveru.
Není to tedy bez chybičky. Předně na nových deskách je displej osazený vzhůru nohama, ale touchscreen je "normálně". Aby korespondovaly souřadnice jako dřív, je potřeba dát setRotation(2).
Dále instalace updatu knihovny způsobí to, že na novém displeji (HX...) se zobrazují barvy standardně (BLACK = 0x0000, WHITE = 0xFFFF), ale na starém displeji (ILI...) jsou inverzní (BARVA=0xFFFF-BARVA).
Starý a nový displej se dá rozlišit podle readID(), takže se dá při inicializaci udělat podmínka.
Tak jsem si hezky odpověděl a třeba do budoucna pomohl někomu stejně zmatenému. A kdybyste měli další postřehy a zkušenosti k tématu, tak je aspoň kam je připisovat
.
Re: TFT LCD 3,2" - různé drivery
Napsal: 27 bře 2018, 17:23
od vs99
Díky moc! Ušetřil jsi mi pár bezesných nocí
Re: TFT LCD 3,2" - různé drivery
Napsal: 29 led 2019, 17:30
od radarixos
pomohlo. rozdil mezi A/B fatalni, 1.6.5 nutne, pozor na cinana, vubec neresi verze, deklaruje B, posle A...klasika. Dik!
Re: TFT LCD 3,2" - různé drivery
Napsal: 29 led 2019, 19:15
od pavel1tu
Já to řeším s jiným typem displeje.
A tohle mi pomůže, až to pochopím a vyzkouším - tedy vyzkouším - moc díky
Dával jsem ho k alarmům i k řízení světel akvária - už sám jsem si naběhl používáním 3 displejů kdo jaký chtěl, teď díky řadičům mám už 5 verzí programu a s každou opravou/úpravou/zdokonalením - mě to stojí strašně moc času.
Re: TFT LCD 3,2" - různé drivery
Napsal: 30 led 2019, 21:07
od radarixos
Pavle jestli to pomuze:
Kód: Vybrat vše
#include <Adafruit_GFX.h> // Core graphics library
#include <Wire.h> //I2C knihova
#include <LM75.h> //knihovna teplotniho cidla na desce displeje
#include <MCUFRIEND_kbv.h> //neco bez ceho to nechodi a je to dulezity :)
MCUFRIEND_kbv tft; //deklarace jmena displeje
LM75 sensor; // deklarace jmena cidla teploty
// barvy pro lidi
#define BLACK 0x0000
#define BLUE 0x001F
#define RED 0xF800
#define GREEN 0x07E0
#define CYAN 0x07FF
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF
void setup() {
Serial.begin(9600); //nahozeni serialu meze displejem a arduinem
Wire.begin(); //nahozeni I2C
/* Serial.println(F("TFT LCD test"));
Serial.print("TFT size is ");
Serial.print(tft.width());
Serial.print("x");
Serial.println(tft.height()); */
tft.reset();
tft.begin(0x5252);//nahozeni HX8352A driveru displeje
tft.fillScreen(BLACK); //backgroung displeje
}
void loop() {
tft.setRotation(1); //rotace na sirku
tft.fillRect(60,80, 170, 50, BLUE); //modry podklad pro TEMP
tft.setCursor(65, 85); //kurzor pro text
tft.setTextColor(WHITE); tft.setTextSize(1);
tft.println("Teplota desky:");
tft.setCursor(100, 100);
tft.setTextColor(WHITE); tft.setTextSize(3);
tft.print(sensor.temp());
tft.println(" C");
tft.setCursor(10, 30);
tft.setTextColor(YELLOW); tft.setTextSize(4);
tft.println("73! DE OK1VBR");
tft.setCursor(60, 200);
tft.setTextColor(WHITE); tft.setTextSize(1);
tft.println(tft.width());
tft.setCursor(80, 200);
tft.setTextColor(WHITE); tft.setTextSize(1);
tft.println("x");
tft.setCursor(90, 200);
tft.setTextColor(WHITE); tft.setTextSize(1);
tft.println(tft.height());
delay(5000);
}