Solución a Problemas de Pantalla Táctil en Shield TFT LCD 2.4″ para Arduino
Componentes y materiales
| Arduino UNO | × | 1 |
Sobre el proyecto
Hola, en este tutorial planeaba probar diferentes funciones del shield TFT LCD, pero me encontré con algunos problemas y decidí mostrar primero las soluciones; el tutorial habitual sobre este shield vendrá después.
Este es el shield que uso: pantalla de 2.4″, compatible con Arduino Uno, Leonardo, Duemilanove, Mega… y tiene ranura para tarjeta SD para almacenar y mostrar imágenes BMP.
Cableado

Solo hay que enchufarlo encima de la placa :D. (No olvides poner cinta aislante alrededor del puerto USB para que no haga contacto con la placa de la pantalla).
Librerías y códigos
Aquí empezaron los problemas: primero debes comprobar qué librería funciona para ti. Para saber si una librería funciona, descárgala y abre el ejemplo "graphictest"; debería mostrar colores y formas como en el video tutorial. Si tienes pantalla blanca, prueba con otra librería.
Esta es la que me funcionó: Descargar aquí

Si funciona, prueba el ejemplo "tftpaint" para testear la función táctil. Si funciona correctamente, ¡enhorabuena! Pero como estás aquí, probablemente tengas el problema de la pantalla táctil, debido a que los fabricantes cambian la ubicación de los pines.
Para solucionarlo, abre el ejemplo "tftpaint" y modifica la línea que se muestra abajo:

Configuración original
#define YP A1 // debe ser pin analógico, usa notación "An"
#define XM A2 // debe ser pin analógico, usa notación "An"
#define YM 7 // puede ser pin digital
#define XP 6 // puede ser pin digital
Nueva configuración (funcionó para mí)
#define YP A3 // debe ser pin analógico, usa notación "An"
#define XM A2 // debe ser pin analógico, usa notación "An"
#define YM 9 // puede ser pin digital
#define XP 8 // puede ser pin digital
Vuelve a subir el código del paint y espero que la pantalla táctil sea detectada. Si funciona, ¡enhorabuena! Si no, continúa el tutorial.
Si uno de los ejes está invertido, ve a la librería de pantalla táctil y ábrela con un editor adecuado.

Ve a la línea 159 y descoméntala.

Guarda los cambios en la librería y vuelve a subir el código. Si la función táctil está completamente invertida, haz más modificaciones como se muestra abajo:

Empieza con:
return TSPoint(1023-x, 1023-y, z);
Luego ajusta hasta que el punto se dibuje donde tocas. En la imagen están los valores que me funcionaron a mí.
Recuerda: si una dirección sigue invertida, cámbiala a (x) o (1023-x). Espero que esto te funcione si tienes el problema.
Código
Repositorio GitHub (librería SPFD5408)
https://github.com/JoaoLopesF/SPFD5408
Esquemáticos
Bueno... es un shield

Proceso de manufactura
- Revisando Estrategias de Mantenimiento: Cómo la Optimización de MP y AMEF Reducen Fallas Post-Reparación
- LCD vs. CRT: ventajas, desventajas y cuál es mejor para usted
- Guía Profesional de Animación Bitmap en Pantalla Táctil ILI9341 2.4″ con Shield para Arduino
- Crea Animaciones y Juegos en LCD 16×2 con Arduino UNO
- Visualizar Fotos JPEG y Vídeo RGB565 en Pantalla TFT SPI 2.8″ con Arduino Nano
- Cómo mostrar imágenes en una pantalla TFT LCD de 1.17 pulgadas con Arduino UNO
- Mostrar Imágenes BMP desde Tarjeta SD en Pantalla TFT LCD 2.4″ Shield Arduino
- Pantalla TFT Shield de Alto Rendimiento 2.8” para Arduino Nano – Display SPI 320×240
- Proyecto Arduino GPS y Pantalla TFT Táctil Shield: Visualización de Ubicación en Tiempo Real
- Sensores Táctiles: Funcionamiento y Aplicaciones Principales
- Preprocesador y macros en C: Dominando #include, #define y compilación condicional