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);
}
20190130_210133.jpg