Go Down

Topic: 240x320 2.4" SPI TFT LCD Touch Panel ILI9341 5/3.3V (Read 20352 times) previous topic - next topic

know

Hola buenas noches; he adquirido una TFT "240x320 2.4 SPI TFT LCD Touch Panel Serial Port Module with PBC ILI9341 5/3.3V", pero no consigo que funcione, he descargado diferentes librerias, pero no consigo compilarlas por diferentes errores. He descargado las librerias de "github.com" y adafruit, pero como comento siempre tengo errores de compilación. He consultado tambien el foro en ingles pero veo diferentes métodos de comunicación DMA, UDF.
Gracias y un saludo.

TFTLCDCyg


know

Gracias amigo pero sigo igual, he aplicado todo los temas del enlace para uno y mega que son las dos placas de arduino que tengo pero sigue sin rular.. Te adjunto foto de la placa por si se me escapa algo. Gracias

TFTLCDCyg

#3
Nov 26, 2014, 09:07 pm Last Edit: Nov 26, 2014, 09:09 pm by TFTLCDCyg
Vayamos por lo más básico: ¿cuál es conexionado pin a pin que has hecho con el MEGA? y de allí partimos para averiguar la falla.



know

Muchas Gracias por contestar lo primero.

Arduino D4    TFT  RESET
Arduino D5   TFT  CS
Arduino D6   TFT  D/C
Arduino D7   TFT LED (3.3V conectado directo con un potenciometro para constraste
Arduino D51   TFT MOSI
Arduino D50   TFT MISO
Arduino D52   TFT SCK

3.3V y GND


Y en este momento este codigo aunque ya he probado muchos

// UTFT_ViewFont (C)2012 Henning Karlsen
// web: http://www.henningkarlsen.com/electronics
//
// This program is a demo of the included fonts.
//
// This demo was made for modules with a screen resolution
// of 320x240 pixels.
//
// This program requires the UTFT library.
//

#include <UTFT.h>
#include <SPI.h>

// Declare which fonts we will be using
extern uint8_t SmallFont[];
extern uint8_t BigFont[];
extern uint8_t SevenSegNumFont[];


UTFT myGLCD;

void setup()
{
  myGLCD.InitLCD();

  myGLCD.clrScr();
}

void loop()
{
  myGLCD.setColor(0, 255, 0);
  myGLCD.setBackColor(0, 0, 0);

  myGLCD.setFont(BigFont);
  myGLCD.print(" !\"#$%&'()*+,-./", CENTER, 0);
  myGLCD.print("0123456789:;<=>?", CENTER, 16);
  myGLCD.print("@ABCDEFGHIJKLMNO", CENTER, 32);
  myGLCD.print("PQRSTUVWXYZ[\\]^_", CENTER, 48);
  myGLCD.print("`abcdefghijklmno", CENTER, 64);
  myGLCD.print("pqrstuvwxyz{|}~ ", CENTER, 80);

  myGLCD.setFont(SmallFont);
  myGLCD.print(" !\"#$%&'()*+,-./0123456789:;<=>?", CENTER, 120);
  myGLCD.print("@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_", CENTER, 132);
  myGLCD.print("`abcdefghijklmnopqrstuvwxyz{|}~ ", CENTER, 144);

  myGLCD.setFont(SevenSegNumFont);
  myGLCD.print("0123456789", CENTER, 190);

  while(1) {};
}

surbyte

Yo creo que tu problema esta en algo mas simple de lo que te imaginas.
Y es que debes decirle a la libreria #include <UTFT.h> que tu TFT es tal ILI9341
SImple. Si miras la librería comienza con la defnicion de al menos 30 controladores, pero debes comentar el actual y quitar el comentario al tuyo.
SIno lo que haces es compilar para un controlador que no esta presente fisicamente.

A ver si es por ahí?

TFTLCDCyg

#6
Nov 26, 2014, 11:42 pm Last Edit: Nov 27, 2014, 12:08 am by TFTLCDCyg
Justo andaba con las pruebas del MEGA que tengo como pisapapeles y el TFT 24SPI. Como menciona surbyte, en tu código hace falta el hardware específico.

En este caso la linea sería:

Code: [Select]
para SPI en el Due:

UTFT myGLCD(ILI9341_S5P,MOSI,SCK,5,4,6)

Para MEGA quedaría:

UTFT myGLCD(ILI9341_S5P,51,50,5,4,6);


Usé ambas lineas con el MEGA y la pantalla se queda en blanco. Probé con la librería Adafruit ILI9340, usando estas definiciones:

Code: [Select]
#define _sclk SCK
#define _miso MISO
#define _mosi MOSI
#define _cs 5
#define _dc 6
#define _rst 4

Adafruit_ILI9340 tft = Adafruit_ILI9340(_cs, _dc, _rst);


Y el TFT en el MEGA no da señales de vida.

Revisé varios posts del segundo link de referencia, que menciono lineas atrás. La conclusión es que este tipo de TFT funcionan con lógica de 3.3V, por lo que se requiere de un circuito extra para que la lógica de 5 V sea compatible con la lógica de 3.3V del TFT

Además en el conexionado hay dos puntos que se deben considerar:

- El pin RESET del TFT  se debe conectar al RESET del Arduino, usar un pin digital causa desconexiones aleatorias en el TFT. Esto me ocurre cuando abre imágenes desde el lector SD, al mandar a RESET del Due ya no he visto ese comportamiento en la pantalla.

- El pin MISO del TFT se puede dejar desconectado o se puede unir al pin MOSI del TFT, en caso de que la pantalla funcione de forma errática. En mi caso funcionó mejor para el Due la  segunda opción, uní MISO con MOSI del TFT.

Usé las lineas de declaración de hardware lineas atrás y la pantalla funcionó sin problemas en el arduino Due  :smiley-eek:

Con el MEGA, el TFT no me funcionó llegué a la misma conclusión que ya tenía: seguir usándolo como pisapapeles.

know

Gracias amigos, pero desisto a la p_ta basura, llevo mas de 15 dias probando todo y nada, volveré a las LCD de texto. un saludo pueden cerrar el post.

surbyte

Digo yo, y compraste el SHIELD TFT de casualidad?

know

Surbyte, compre la TFT junto con algunos otros elementos, placa de reles, reloj, sensor de distancia, etc, por aquel que dice de representar en una TFT los datos mejor, y poder inter-actuar a través de la pantalla táctil, poner las bombas en automático en manual etc y ahorrar interruptores y selectores. No fue de casualidad.

Descarge de la pagina elecfreaks un ejemplo para mi pantalla por la imagen veo que es la misma.

http://www.elecfreaks.com/store/24-tft-lcd-tft0124sp-p-785.html
http://www.elecfreaks.com/store/download/product/TFT/TFT01-2.2S/_24_SPI.zip

y en este caso no pide ni librerías ni nada? Tampoco me funcionó
Muchas gracias y un saludo

Nota: ¿Hay algún método para revisar paso a paso la TFT? No se revisar la comunicación serie, revisar envió datos, reloj y otros, insertando serialprint en alguna parte del código para verificar  el estado, no quizas esto no es funcional pero es lo que he usado para depurar el codigo cuando me fallaba algo .

surbyte

no me entendiste, ya te lo puse pero lo voy a repetir, el SHIELD TFT no es el TFT sino una placa que hace la interfaz 5 (del arduino) a 3.3V del TFT. Si conectas directo al TFT lo quemas y no obtienes nada.

Este es el shield.

y cuando dije
Quote
y compraste el SHIELD TFT de casualidad?
quise decir:

compraste la interfaz que hace falta entre tu TFT y el arduino?

know

No funciona mi placa con 5V?, yo entendí que el 5/3.3v significaba que funcionaba con los 2 voltajes.

surbyte

Tu placa si pero tu TFT es 3.3. asi que tu sabras como lo tienes conectado.
No dijiste nada de eso?

know

Hola surbyte;

Asi lo conecto en Mega

Arduino D4    TFT  RESET
Arduino D5   TFT  CS
Arduino D6   TFT  D/C
Arduino D7   TFT LED (3.3V conectado directo con un potenciometro para constraste
Arduino D51   TFT MOSI
Arduino D50   TFT MISO
Arduino D52   TFT SCK

Vcc 3.3V y GND

En UNO cambian los pines, pero no he aplicado ningun conversor de tensiones, porque crei que no era necesario.

Un saludo y gracias por contestar.

TFTLCDCyg

#14
Dec 03, 2014, 10:47 pm Last Edit: Dec 03, 2014, 10:52 pm by TFTLCDCyg
Suena interesante la interfase que propone surbyte, usando un shield-TFT para MEGA. Como tengo esos elementos a la mano me puse a hacer experimentos.

- Arduino MEGA
- TFT LCD Mega Shield V2.2 (ElecFreaks, 12/10/2012)
- TFT 2.4" ILI9341 con touch panel

Así quedó la definición de hardware para la librería UTFT

Code: [Select]
// Pines del TFT 24SPI               MOSI,    SCK,  CS, RESET, D/C
// Pines del TFT-Shield MEGA        SD_DIN, SD_SCK, DB0, DB1,  DB2          
//           UTFT myGLCD(ILI9341_S5P,MOSI,    SCK,   37,  36,   35);
// Números de los pines del shield:    37     36     21   22    23
//                                  GND  1
//                                  VCC  2
//                                  LED  19

UTFT myGLCD(ILI9341_S5P,MOSI,SCK,37,36,35);



Así la de Adafruit_ILI9341

Code: [Select]

#define TFT_DC 35
#define TFT_CS 37
#define TFT_RST 36

Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_RST);



En conclusión: consigue un Shield TFT para MEGA y podrás disfrutar del TFT  :smiley-lol:

PD: reconsideré mi postura respecto al MEGA, ya tiene planes a futuro XD.


Go Up