bclose

TFT 3,2″ de 400×240 táctil

Panel tactil para arduino

Pantalla tactil TFT 3,2″ de 400×240

 

 

    • Presentando una TFT de 3,2″ y 400×240
    • Procedimiento de instalacion de librerías
    • Muestra de ejemplos

 

Material requerido.

 MCUFRIEND HX8352B  TFT

 

Vista frontal Arduino UNO, MEGA o DUE.

Instalando MCUFRIEND 3,2″ con HX8352B

 

Uno de los problemas de las pantallas TFT baratas (O sea chinorris) es que aunque excelentes y de bajo coste,  tienen el feo vicio de cambiar con frecuencia el chip que gobierna la pantalla con lo que comprar una por correo, si no eres un experto, se convierte rápidamente en una ruleta rusa, y es muy fácil que acabe siendo un pisapapeles, muy barato, pero completamente inútil.

Como hemos sufrido este problema en más de una ocasión, en Prometec hemos acabado haciendo un mini master sobre TFTs chinas y al final, no incluimos en la tienda pantallas que no hayamos logrado hacer funcionar. Y creednos cuando os digo que hay veces que lleva un puñado de horas y de dolores de cabeza, hacerlas funcionar.

Imagen laterial

Últimamente hemos probado esta pantalla que incluye un controlador HX8352B, con estas características:

  • Tamaño 3.2″
  • Resolución de 400×320 puntos
  • Pantalla táctil y lápiz incluido
  • Lector de tarjetas SD

Nos ha gustado especialmente esta pantalla porque ha demostrado tener una buena resolución y un precio contenido, y además nos ha sorprendido gratamente la buena sensación que la imagen  proporciona a la vista. Y como bonus es táctil, lo que encaja muy bien con muchos proyectos.

No es la pantalla de más resolución del mundo pero es más que suficiente excelente a la vista y al tacto y eso no se puede decir de todas las pantallas. Además usa la librería de MCUFRIEND que es compatible con las de Adafruit y no hemos podido resistirnos a incluirla en catalogo

 

Configurando la pantalla TFT

 

Para manejar esta pantalla necesitamos instalar 3 librerías:

Adafruit-GFX-Library-master
MCUFRIEND_kbv-master
Adafruit_TouchScreen-master (Si quieres usar la función táctil)

Basta con que pulses en el botón verde de la derecha y descargarás copia de la librería a tu directorio descargas y desde allí las puedes instalar como siempre.

 
 
  • Muy a menudo, nos comentáis que tal o cual librería ha dejado de funcionar.  Tenéis que comprender que estas son versiones que hemos descargado para este post (Diciembre 2018) pero que a medida que pasa el tiempo, cambios en el IDE Arduino o en el compilador pueden hacer que dejen de funcionar y por eso os hemos puesto links a Github para que puedas descargar siempre la última versión
  • No es un problema de esta pantalla o librerías, sino más bien un problema general de cualquier librería, que con el tiempo puede dar problemas de compatibilidad a medida que avanzan las versiones del entorno Arduino. Nosotros lo hemos instalado con versión 1.87 del IDE sin problemas.  

Como siempre el problema es saber que controlador tiene nuestra pantalla. En nuestro caso es un HX8352B y con este dato tenemos que tocar la librería, porque normalmente ésta, solo trae habilitados algunos chips cada vez, aunque soporta muchos más y hay que habilitar el contraladory el modelo de Arduino que vamos a usar.

Pero, por favor, que no se asuste nadie. De verdad que es una tontería y que si seguís nuestras instrucciones tendréis la pantalla en marcha en un periquete.

Normalmente no tocamos las librerías desde Prometec para evitar miedos a los novicios pero, una librería es un programa como otro cualquiera , solo que un poco más complicado y no necesitas entender la librería para hacer los cambios precisos (Están pensadas para hacer esto)

Además, alguien podría pensar que podríamos hacer nosotros los cambios para que no tuvierais que hacerlo vosotros, pero en este caso, hay que decidir con qué modelo de Arduino vamos a usar la pantalla y especificarlo, por lo  que al final no hay más remedio que mancharnos las manos de grasa (Tranquilos, que se lava )

 

Modificando la librería para nuestro chip y modelo Arduino

 

En Arduino, cuando instalamos una librería,en Windows  va directamente a:

C:\Users\charl\OneDrive\Documentos\Arduino\libraries

Encontrareis un directorio por cada librería que hayáis instalado y ya que estamos si borráis una de estas carpetas, elimináis la librería y Arduino dejara de verla en la lista de librerías instaladas. Vamos a meternos en el directorio NODEMCU.

Seleccionando ficheros en las librerias

Veras algo así:

muestra de contenido

Ahora tenemos que editar y modificar 4 ficheros, enseguida veréis porque:

MCUFRIEND_kbv.cpp to enable support for the HX8352B
 utility/mcufriend_shield.h: #define USE_SPECIAL
 utility/mcufriend_special.h: #define USE_OPENSMART_SHIELD_PINOUT
 MCUFRIEND_kbv.cpp: #define SUPPORT_8352B

Vamos a la zona de búsqueda y escribe:

MCUFRIEND_kbv.cpp
listado de programas

El que nos interesa es el primero (Los demás salen porque hacen referencia a él) y ahora tenemos que editarlo. Apúntale con el ratón y presiona botón derecho. Se abrirá un menú y pincha abrir con:

ejemplo de abrir con

Windows te preguntara como quieres abrir el archivo. Dile que con Wordpad y asegúrate de elegir la opción de abajo: Usar siempre esta aplicación para archivos cpp

Asociar un programa a una extension

Con esto se abrirá el programa en el editor (La extensión .cpp significa C++) , Veras un montón de defines. Tenemos que buscar que buscar una línea que incluya nuestro chip HX8352B, así que basta con que hagas [CTRL]+B y escribir HX8352B e Intro.

buscando en wordpap

Te llevara a esta línea:

//#define SUPPORT_8352B             //HX8352B

Fíjate que tiene el «//» por delante, es decir esta como comentario, pero está sin activar. Quítale las barras para que quede así:

#define SUPPORT_8352B             //HX8352B

Ya hemos activado nuestro chip y ahora hay que salvar las modificaciones: Archivo\guardar o [CTRL]+ G y cerramos el fichero.

Nos toca buscar ahora en el directorio de la librería el fichero:

mcufriend_shield.h
ejemplo de busqueda

Con un doble click os abrirá directamente el fichero o bien os preguntara que programa usar para abrir, pues vuelta al Wordpad y tenemos un segundo programa (La extensión .h significa Header, y toda librería incluye uno) y hay que buscar:

#define USE_SPECIAL

Que puede estar o no, comentado. Asegúrate que figura como arriba sin las barras «//» y a guardar.

Vamos a buscar otro fichero, y click click para abrirlo

mcufriend_special.h

Busca:

#define USE_OPENSMART_SHIELD_PINOUT

Bueno, aquí está la madre del cordero, porque encontrareis varias líneas, una por cada modelo Arduino soportado.

//#define USE_OPENSMART_SHIELD_PINOUT_UNO
//#define USE_OPENSMART_SHIELD_PINOUT_MEGA
//#define USE_OPENSMART_SHIELD_PINOUT_DUE

Para el TFT que tenemos en la tienda, basta con que pongas sin comentarios la línea del modelos de Arduino que uses. En mi caso estoy haciendo el post con un Arduino MEGA por tanto basta con dejar la línea correspondiente así:

#define USE_OPENSMART_SHIELD_PINOUT_MEGA

¿Que quieres un UNO o DUE? Pues dejas comentados todos menos el que te interesa ¿Vale? Y a salvar. Y eso es todo, pero recuerda que las instrucciones dicen que solo dejes un modelo seleccionado y no varios que si no tendrás problemas.

Os recomiendo usar estas pantallas con Megas o DUEs porque las aplicaciones gráficas tienden a consumir memoria y un UNO se queda bastante justo, aunque funciona.

Aquí os dejo un mini vídeo con algunas de las demos que vienen incluidas en los ejemplos

 

IMAGEN DE MARCA
Tienda y Tutoriales Arduino