VISTA DE ESPEJO EN TFT AL HACER PRUEBA INDICADA DESPUÉS

Hola soy un poco novato en esto del mundo del arduino pero estaba haciendo unas pruebas de una TFT táctil de 2.4’’ con una controladora ILI9341; puse un código sencillo de la red y resulta que era como un juego sencillo y la pantalla se ve como desde la vista de un espejo, las letras del revés y creo que el fondo se debería de ver en negro y se veía en blanco y se veía bastante raro.

Este era el código:

#include <Adafruit_GFX.h>              // Libreria de graficos
#include <Adafruit_TFTLCD.h>          // Libreria de LCD
Adafruit_TFTLCD tft(A3,A2,A1,A0,A4); // Instancia del LCD
#define    NEGRO 0x0022                             
#define    ROJO  0xF800              
#define    VERDE 0x07E0
#define BLANCO 0xFFFF 
#define AZUL  0x001F
#define CYAN  0x07FF
#define AMARILLO 0xFFE0
#define MAGENTA 0xF81F
void setup(){
  tft.begin(0x9325);  //según CHIP pantalla ili9325 o ili 9341
  tft.fillScreen(NEGRO);
  tft.setRotation(0); // Establecemos la posición de la pantalla Vertical u Horizontal
  tft.setCursor(40, 10);  // Posicionamos el cursor (240,320)máximo.                         
  tft.setTextSize(5); // Definimos tamaño del texto del 1 al 10   
  tft.setTextColor(CYAN); // Definimos el color del texto
 tft.println("Texto"); // Escribimos nuestro texto en el LCD.
 tft.drawLine(20,70,200,70,VERDE); //PuntoInicio X,PuntoInicioY, PuntoFinal X, PuntoFinal Y,Color
 int X = tft.width( );   // Almacenamos en la variable entera X el ancho del LCD en pixeles
 int Y = tft.height( );  // Almacenamos en la variable entera Y el alto del LCD en pixeles
 tft.setCursor(15, 90); // Situamos el cursor en una nueva posicion del LCD
 tft.setTextSize(3); // Definimos tamaño del texto.
 tft.setTextColor(ROJO); // Definimos el color del texto
 tft.print("X=");
 tft.print(X,DEC); // Imprimimos por pantalla el valor de las variables en decimal
 tft.print("Y=");
 tft.println(Y,DEC);
 tft.drawRect(20, 125, 200, 25, AMARILLO); // Dibujamos un cuadrado/rectangulo sin color de relleno   
tft.fillRect(20, 165, 60, 60, AZUL); // Dibujamos un cuadrado/rectangulo relleno de color       
tft.drawCircle(120, 195, 30, BLANCO); // Dibujamos un circulo sin color de relleno                                          
tft.fillCircle(120, 195, 20, BLANCO); // Dibujamos un circulo relleno de color (x,y,radio,color)
tft.drawTriangle(190,163,160,225,222,225,CYAN); //  Triángulo con vértices   
 tft.fillTriangle(190,240,160,302,222,302, MAGENTA); //Triángulo con vértices y color de relleno
tft.drawRoundRect(20, 245, 130, 60, 20, ROJO); // Dibujamos un cuadrado/rectangulo con los bordes redondeados                                                   
tft.fillRoundRect(35, 255, 100, 40, 15, AMARILLO); // Dibujamos cuadrado/rectangulo con vertices redondeados y relleno
}
void loop(){    
 }

Si alguien me pudiese ayudar lo agradecería bastante, gracias.

Hola,

He encontrado algunas bibliotecas así,

Has intentado invertir el valor de cada color?

De esta forma:

#define NEGRO ~0x0022

o

#define NEGRO 0xFFFF-0x0022

¿Así? porque el otro metodo lo he probado con todos a la vez y no me ha funcionado:

#define NEGRO 0xFFFF-0x0022                             
#define    ROJO  0xFFFF-0xF800              
#define    VERDE 0xFFFF-0x07E0
#define BLANCO 0xFFFF-0xFFFF 
#define AZUL  0xFFFF-0x001F
#define CYAN  0xFFFF-0x07FF
#define AMARILLO 0xFFFF-0xFFE0
#define MAGENTA 0xFFFF-0xF81F

hdelrio:
¿Así? porque el otro metodo lo he probado con todos a la vez y no me ha funcionado:

El IDE muestra algún error?

Una cierta configuración de la biblioteca que hace la inversión de los colores necesita ser reconfigurada, o usted puede declarar el valor de los colores de forma invertida,

Puede utilizar una calculadora en modo programador, restando el valor del color de 0xFFFF,

Usted también puede utilizar otros colores, vea este sitio:
RGB565 Color Picker

No el IDE, ninguno, no da error, aunque la pantalla se ve en espejo. Y si podría reconfigurar los colores o utilizar otros pero no se si eso sería la solución. ¿No haría falta hacer algún cambio en el código?

Gracias a los dos por responder con velocidad.

Perdón es el mismo no me había dado cuenta.
Aún usando otros colores no hace nada en el graphicstest, se queda la pantalla en blanco.
Una cosa que el graphicstest, que es un ejemplo de la librería (TFTLCD-Library-master) que abajo lo indico, no me lo hace, la pantalla no hace nada, creo que debería hacer algo.

Como no me deja superar los 9000 caracteres te dejo el código en un link de drive.
graphicstest

El error principal es que se ve como un espejo

Hola,

Su LCD sería de la marca MCUFRIEND?

Tal vez este código funcione mejor, hace la identificación de la pantalla antes de inicializar:

Gracias!! Si, esa es mi pantalla, y su controladora también. La librería funciona perfectamente en la pantalla, ya no se ve e forma de espejo pero, ¿me podrías decir el primer código modificado para mi pantalla por favor?
Me gustaría probar si el código anterior funcionaría con esta librería.

Gracias de nuevo.

Juega con esto

tft.setRotation(0);

Cambia valores a ver como se comporta.

mira este video min 1:52 es cuando lo hace

sino lee este hilo o directamente ve al post#12 donde da la solución que fue cambiar MAXY y MINY

p.y = map(p.y, TS_MAXY, TS_MINY, tft.height()-BOXSIZE*2, 0); //Here I changed the values of the MAXY and MINY around.

Debes leer todo el hilo para entender que código corría.

Vale gracias.