Pantalla TFT, touch KHB31FC2, en blanco

Buenas noches. Tengo una pantalla LCD TFT con estas características:

3.2" Inch TFT LCD 5V Expansion Shield Touch Screen

Modelo pantalla: KHB31FC2

Controlador: HX8352A

Resolución: 240x400

Ahora con Arduino UNO, pero puede ser con MEGA (hace lo mismo).

He probado multitud de proyectos y ejemplos de las librerías, pero no he conseguido que se vea nada. Se enciende la retroluminación y permanece en blanco, aún después de muchísimas pruebas. Nunca he conseguido que se vea nada. He probado otra pantalla igual (tengo dos) y tampoco en esta, por lo que creo que debo descartar que estén averiadas las dos.

Lo único que he conseguido es que, con el ejemplo de la librería “TouchScren Drive”, y con la pantalla en blanco, al mover el puntero sobre ella, en el monitor série aparezcan unos valores que supongo que son las coordenadas y presión:

Imatge1.png

Lo que indica que funcionar, funciona, pero sin que haya ninguna señal en la LCD. Se mantiene en blanco.

Alguna sugerencia sobre el problema?

Gracias por la atención y la ayuda

Lastimosamente ese tipo de pantallas no cuentan con información clara respecto a cómo configurar el panel táctil y las librerías que supuestamente funcionan, fallan ya que el shield físicamente viene con variantes del chip controlador, es decir revisiones A o B e incluso C, los registros de inicio generalmente tienen variaciones muy sutiles que hay que ajustar en la librería.

Estos cambios mínimos interfieren con la calibración y en otras ocasiones, con la respuesta de la pantalla.

Primero hay que atender el problema de control de calidad ya que normalmente hay que darle un retoque con cautín a los pines que vemos soldados en el shield.

Dado que ya tienes en tus manos la pantalla vamos a pensar que no tiene defectos. Mi sugerencia es que revises la documentación del fabricante o vendedor. Acá hay un zip que puedes revisar

He visto que la librería de control es la MCUFRIEND_kbv, mira el link son mas de 170 páginas con las que te volverás experto en tu pantalla

Gracias por la respuesta, TFTLCDCyg. He dado un vistazo al enlace y, a pesar que no he entendido demasiado, tampoco me sirve su librería.

Una pregunta más, veo que en la imagen del chino donde compré la pantalla pone, como controlador, HX8352B, mientra que en la mía pone HX8352A. Imagino que el correcto es el que indica en la placa, pero no se... No hay ningún programa, aplicación o qué se yo, que escanee la pantalla e identifique el controlador real que lleva?

A ver, he abierto el ejemplo “diagnose_TFT_suport” de MCUFRIEND_kbv, y sigue la pantalla en blanco, pero en el monitor série aparece este texto:

Diagnose whether this controller is supported
There are FAQs in extras/mcufriend_how_to.txt

tft.readID() finds: ID = 0x5252

MCUFRIEND_kbv version: 2.9.8


This ID is not supported
look up ID in extras/mcufriend_how_to.txt
you may need to edit MCUFRIEND_kbv.cpp
to enable support for this ID
e.g. #define SUPPORT_8347D

New controllers appear on Ebay often
If your ID is not supported
run LCD_ID_readreg.ino from examples/
Copy-Paste the output from the Serial Terminal
to a message in Displays topic on Arduino Forum
or to Issues on GitHub

Note that OPEN-SMART boards have diff pinout
Edit the pin defines in LCD_ID_readreg to match
Edit mcufiend_shield.h for USE_SPECIAL
Edit mcufiend_special.h for USE_OPENSMART_SHIELD_PINOUT

He creído entender que había que descomentar, en “extras/mcufriend_how_to”, de la carpeta MCUFRINED_KBV, la línea a la que hace referencia. Es lo que he hecho, pero al volver a gargar el sketch y abrir el monitor serie, lanza este segundo mensaje:

Diagnose whether this controller is supported
There are FAQs in extras/mcufriend_how_to.txt

tft.readID() finds: ID = 0x5252

MCUFRIEND_kbv version: 2.9.8


PORTRAIT is 240 x 400

Run the examples/graphictest_kbv sketch
All colours, text, directions, rotations, scrolls
should work.  If there is a problem,  make notes on paper
Post accurate description of problem to Forum
Or post a link to a video (or photos)

I rely on good information from remote users

He abierto el ejemplo “graphictest_kbv” y sigue la pantalla en blanco. A parte de salir un mensaje en la parte inferior del progreso del IDE, mientras carga el programa, me indica que “Se dispone de poca memoria, y se pueden producir problemas de estabilidad”, al abrir el monitor serie, hay esta lectura:

Serial took 0ms to start
ID = 0x5252

La pantalla sigue en blanco, y se aprecia un ligero parpadeo, como si quisiera ponerse en marcha o hiciera alguna cosa, pero no se ve nada.

Y ahí ya me pierdo… He hecho algo mal? Hay que hacer algo más?

Salu2 cordiales

Sube algunas fotos para ver cómo es que has conectado tu pantalla, eso nos podría dar una idea de cómo ayudarte.

Recuerda comentar los llamados a otros modelos de TFT que trae por default la librería, eso podría sobrecargar tu MCU e impedir que funcione.

Esa librería debe configurarse bien antes de usarla.

Gracias, TFTLDCyg por la respuesta. He comentado TODAS los modelos de pantalla en la librería mcufriend_how_to, excepto la que se supone que es la mía.

También he cambiado la UNO por la MEGA, por si acaso. El conexionado, tanto en la una cómo en la otra, no tiene secreto, ya que va montada sobre cualquiera de ellas:

Imatge2.png

Cargado el ejemplo “diagnose_TFT_suport” en la mega, se lee en el monitor serie:

Diagnose whether this controller is supported
There are FAQs in extras/mcufriend_how_to.txt

tft.readID() finds: ID = 0x5252

MCUFRIEND_kbv version: 2.9.8

Probably a write-only Mega2560 Shield
#define USE_SPECIAL in mcufriend_shield.h
#define appropriate SPECIAL in mcufriend_special.h
e.g. USE_MEGA_16BIT_SHIELD
e.g. USE_MEGA_8BIT_SHIELD
Hint.  A Mega2560 Shield has a 18x2 male header
Often a row of resistor-packs near the 18x2
RP1-RP7 implies 16-bit but it might be 8-bit
RP1-RP4 or RP1-RP5 can only be 8-bit

PORTRAIT is 240 x 400

Run the examples/graphictest_kbv sketch
All colours, text, directions, rotations, scrolls
should work.  If there is a problem,  make notes on paper
Post accurate description of problem to Forum
Or post a link to a video (or photos)

I rely on good information from remote users

Pero la pantalla sigue igual y tampoc reacciona con el ejemplo “graphictest_kbv”…

Gracias por la ayuda.

He estado buscando información sobre esta pantalla en blanco (únicamente funciona la retroiluminación), y he leído que había que hacer algunas modificaciones en algunos archivos de la librería MCUFRIEND_kbv, concretamente en “MCUFRIEND_kbv.cpp”, había que descomentar la siguiente línea, que estaba comentada:

#define SUPPORT_8352A //HX8352A +486 bytes, 0.27s

Posteriormente, había que comentar todas las pantallas que no voy a utilizar, dejando únicamente sin comentar, la del controlador de mi TFT, en la librería “extras/mcufriend_how_to.txt”.

HX8352-A 240x400 ID=0x5252 #define SUPPORT_8352A

Después, en la librería "**mcufriend_special.**h", descomentar las líneas referentes a la MEGA;

#define USE_MEGA_8BIT_SHIELD // 4.7sec Mega2560 Shield
#define USE_MEGA_16BIT_SHIELD // 2.14sec Mega2560 Shield
#define USE_BLD_BST_MEGA2560 // 12.23sec Uno Shield (17.38s C)

Bien. Hecho esto, abro el ejemplo "graphictest_kbv", y se aprecia un ligero parpadeo en la pantalla (sube y baja ligeramente la iluminación) de manera cadencial, como si por detrás de ella estuviera haciendo algo o mostrando algo, pero que no aparece en pantalla.

De todas maneras tengo serias dudas sobre el conexionado. Utilizo una placa MEGA, y según parece utiliza los pines lcd (HX8352A,38,39,40,41);, pero los pines del 21 al 53, quedan en la parte posterior de la placa y no quedan conectados. Para mi que el problema es de estos pines, pero no tengo ni idea de cuales tengo que usar... Alguna sugerencia?

Gracias por la ayuda.

Ninguna sugerencia sobre el problema? Nadie se ha encontrado con este problema?

Hi,
Encontre esta informacion para resolver el mismo problema que tu tienes pero yo no se te puede ayudar. De todas meneras adjunto el link donde se resolvio el problrma haciendo eso cambios. Dice que cuando hagas los cambios desconectas el display y mira ver si te trabaja.

MCUFRIEND_kbv.cpp: #define SUPPORT_8352A
mcufriend_shield.h: #define USE_SPECIAL
mcufriend_special.h: #define USE_OPENSMART_SHIELD_PINOUT

Gracias por la respuesta, tauro0221. Ya tengo estas modificaciones hechas, pero no funciona...

Hi,
Por lo que veo haz tratado todo, Yo compre una TFT y la tuve que botar pues nadie la usaba y nunca la pude poner a funcionar. Compre una de adafruit y esta trabajo de primera intencion. Tambien el problema es que hay poca informacion hacerca de esa TFT. Casi nadie la usa.

Hay demasiadas versiones económicas de ese tipo de pantallas, algunas de ellas vienen mal de fábrica. Mi mejor sugerencia es que leas este post que versa sobre ese tipo de shields

Me alejé de esas pantallas hace más de 3 años, pues el soporte para arduino: muy escaso; perdí muchas horas de mi proyecto ¡tratando de revivir una de ellas!

PD: si te interesa un TFT tipo shield te recomiendo un gameduino 3 hay de 4.3" y de 7", con mucho, son el tope en lo que respecta a pantallas para arduino. Tiene lógica de 3.3V y de 5V por lo que lo puedes usar en un arduino due o en un MEGA/UNO y con la libreria mas reciente, se puede usar en MCU como el ESP32 o ESP8266 fabricados en formato tipo arduino UNO

Existe un shield de 3.5" me parece que se llama "Sunflower-shield", tiene un FT813 y funciona para entornos de 5V

Vale, gracias por los comentarios. Por lo que veo y después del tiempo invertido en esta pantalla, voy a aparcarla. Quien sabe, tal vez un día pueda retomarla, pero ahora ya me tiene más que harto.

Pués nada, muchas gracias por a atención y la ayuda.

Salu2 cordiales.