TFT LCD 3,2" - různé drivery

Odpovědět
SC1
Příspěvky: 10
Registrován: 23 lis 2017, 19:10
Reputation: 0

TFT LCD 3,2" - různé drivery

Příspěvek od SC1 » 17 pro 2017, 17:32

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.

SC1
Příspěvky: 10
Registrován: 23 lis 2017, 19:10
Reputation: 0

Re: TFT LCD 3,2" - různé drivery

Příspěvek od SC1 » 17 pro 2017, 18:05

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 :-).

vs99
Příspěvky: 1
Registrován: 27 bře 2018, 17:22
Reputation: 0

Re: TFT LCD 3,2" - různé drivery

Příspěvek od vs99 » 27 bře 2018, 17:23

Díky moc! Ušetřil jsi mi pár bezesných nocí :)

radarixos
Příspěvky: 4
Registrován: 29 led 2019, 16:22
Reputation: 0

Re: TFT LCD 3,2" - různé drivery

Příspěvek od radarixos » 29 led 2019, 17:30

pomohlo. rozdil mezi A/B fatalni, 1.6.5 nutne, pozor na cinana, vubec neresi verze, deklaruje B, posle A...klasika. Dik!

pavel1tu
Příspěvky: 610
Registrován: 26 říj 2017, 08:28
Reputation: 1
Bydliště: Trutnov
Kontaktovat uživatele:

Re: TFT LCD 3,2" - různé drivery

Příspěvek od pavel1tu » 29 led 2019, 19:15

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.
UNO, NANO, Mikro, PRO mini, DUE
http://pavel1tu.8u.cz/

radarixos
Příspěvky: 4
Registrován: 29 led 2019, 16:22
Reputation: 0

Re: TFT LCD 3,2" - různé drivery

Příspěvek od radarixos » 30 led 2019, 21:07

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

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host