Arduino mega y pantalla TFT LCD Touch 2.4 Problema para presentar variables

Buenas, hace tiempo compre una pantalla TFT Touch para arduino y estoy intentando hacerla trabajar con un arduino mega.
Para trazos estaticos muy bien, pero cuando quiero representar una variable que va cambiando, como un tiempo, no se como hacerlo.
Si solo imprimo la variable me la va pisando, ver video.


El codigo que utilizo es este, la primera linea rellena un rectangulo con el color de fondo.
Código:
tft.fillRect(0, 200, 320, 40, BLACK); // Rellenamos un rectangulo, si la habilito parpadea, sino la pisa
 tft.setCursor(170,200);  // Colocamos el cursor
 tft.setTextSize(3);    // Especificamos el tamaño del texto
  tft.setTextColor(RED); // Definimos el color del texto 
  tft.println(time); // Escribimos por pantalla

Alguien podria ayudarme? Gracias.
 

Adjuntos

  • 2013.11.08_MEDIUM-1.jpg
    2013.11.08_MEDIUM-1.jpg
    81.9 KB · Visitas: 25
  • Foto-Oct-31-12-59-43-PM.jpg
    Foto-Oct-31-12-59-43-PM.jpg
    112.9 KB · Visitas: 26
El color de fondo los podes definir con fill?: en setup() poner
tft.fill(0,0,0); //color de relleno/fondo = negro
 
Si no entiendo mal, cuando uno envía a dibujar algo a una pantalla especifica un "color de pincel" o de trazo/foreground (función setTextColor), y un color de fondo/background (función fill).

Entonces lo que pienso es que tu color de fondo está actualmente definido como transparente en vez de negro.
Si el color de fondo es transparente al escribir se mantiene lo que había antes en el pixel (sería similar a hacer una OR); mientras que si el color de fondo se especifica como negro entonces equivale a setear el pixel a negro a menos que por ahí pase el trazo en cuyo caso se pone el color del texto/línea.

Son suposiciones, no tengo el hardware para comprobarlo por mi mismo.
 
Ah, vale.
No, no, relleno con negro al escribir, si no relleno me pasa eso, se va pintando la variable encima. Si relleno lo hace a cada ciclo y por eso parpadea.
 
Ah, vale.
No, no, relleno con negro al escribir, si no relleno me pasa eso, se va pintando la variable encima. Si relleno lo hace a cada ciclo y por eso parpadea.

Te entiendo, pero lo que estoy diciendo es que para rellenar con un color de fondo negro puede no ser necesario llamar a tft.fillRect(); sino que puede bastar con definir que queremos un color de fondo negro <ignorar>con la función fill()</ignorar>, y la misma función tft.println() escribe el color de frente Y el color de fondo (siempre y cuando no sea transparente como creo que puede ser tu caso).

Mucho creo... puede... a ver, vamos a mirar las librerías:
http://www.arduino.cc/en/Guide/TFT
https://github.com/arduino/Arduino/tree/master/libraries/TFT

Mmmmm, metí la pata . Pensaba que la función fill establecía el color de fondo para texto y figuras (rectángulos, circulos...) pero parece que es solo para figuras y no para texto.

A ver... la función tft.println() llama a tft.write (Adafruit_GFX.cpp) que llama a drawChar(cursor_x, cursor_y, c, textcolor, textbgcolor, textsize); -->> color de fondo txbgColor.
Esa variable la escribe la función setTextColor, que puede tomar 1 solo parámetro si queremos que el color de fondo transparente (que NO es el caso), o 2 parámetros que definen color fuente y color de fondo respectivamente.

Entonces lo que deberías hacer para no preocuparte de andar borrando texto antes de escribir uno nuevo es, en vez de la línea
tft.setTextColor(RED); // Definimos el color del texto
usar
tft.setTextColor(RED, BLACK); // Definimos el color del texto, y color de fondo de texto

No sé donde están definidas las constantes de color RED y BLACK, pero bueno creo que la idea se entiende.

Ah sí, la línea tft.fillRect(0, 200, 320, 40, BLACK); ya no sería necesaria (en teoría :) )
 
Última edición:
Muchas gracias por tu respuesta, probaré lo que me dices.
De momento ahora solo refresco la variable si ésta cambia y va de lujo, lo que si primero pinto un rectángulo donde coloco la variable con el color de fondo de pantalla.
Gracias.
Un saludo.
 
Hola amigos.
Estoy un poco desactualizado, pero hoy vi en la tienda este TFT LCD Touch 2.4.
y quiero hacer un teclado matricial con el que a la vez cuando termine de digitar alguna clave, me pase a menú aceptar, OK, o algo de este tipo.
Hace tiempito no trabajo con arduino, pero me gustaria que me mostraran como manejar esta lcd, ya vi los ejemplos
pero antes de comprarla, me gutaria saber como crear dicho teclado, matricial en esta.
otra cosa, el vendedor me dijo que tenía problemas con el arduino mega esta TFT, pero no se que tan cierto sea.
Gracias..y un saludo
 
teclado virtual en la pantalla?
eso no sería un teclado matricial ya que no lees una matriz, si no mal recuerdo el touch funciona por coordenadas XY que obtienes leyendo los valores análogos del touch
 
Bueno no me expliqué, emular el teclado, que se esemeje pero necesito ejemplos y librerias
Para crear botones. Por ejemplo, presiono 1,2,3, *, y me desaparece el teclado
Apareciendo otro menú para confirmar, que diga permitido u otra cosa.
Como creo esos botones. Necesito un tuto pues hace tiempo no programo arduino
Y nunca fui bueno en esto.
 
Última edición:
Buenas a todos.

Yo también compré esta pantalla y estoy usando la librería ILI9341.h para configurar mi pantalla. Mi problema viene a la hora de usar la SD, ¿alguien puede ayudarme? Conecté el pin SD_CS al pin 4 de Arduino, adaptado a 3.3V, pero aún así no me reconoce la tarjeta al hacer SD.begin(4); ¿Me olvido de algo? La tarjeta funciona perfectamente, que la he probado en mi cámara de fotos.

Gracias de antemano. Adjunto tutos de esta pantallita por si a alguien le sirvieran:

http://electronicavm.net/2015/03/05/tft-lcd-touch-2-4-shield-para-arduino-uno/
http://www.naylampmechatronics.com/blog/26_Tutorial-pantalla-TFT-táctil-con-Arduino.html
 
Esto es todo cuanto tengo:

IMG_20160203_182204.jpg


Además de las pruebas con el multímetro, que me dicen que la tarjeta no se encuentra alimentada hasta que no cortocircuito los pines de la tarjeta de la siguiente forma:

SDO(MISO) - SD_MISO
SDI(MOSI) - SD_MOSI
SCK - SD_SCK

Y conecto la señal SD_CS con el pin 4 de Arduino UNO, que por lo visto junto con el pin 5 son los pines que implementan SPI.

Todas las señales que van de Arduino UNO a la tarjeta las he convertido a nivel 3.3V.

¿Alguna idea? Mil gracias.
 
VCC y GND sí se encuentran cortocircuitados en toda la placa (tanto en los pines de la pantalla como en los del lector SD). En cambio, los pines que listé no se encuentran cortocircuitados.
 
Buen dia,

En dias anteriores adquiri el modulo de 2.4 pulgadas tft lcd Shield, lo conecte a mi arduino y todo funciona perfecto.


Luego investigando el controlador encontre que permite comunicacion SPI y pense en montarlo con un PIC pero en los pines que trae el modulo solo se encuentran los de la comunicacion paralela, desmonte la pantalla del modulo SHIELD pero no encuentro en ningun lugar la descripcion de pines para poderla conectar, tiene 37 conectores.

Descargue la librerio de ILI9341 para proteus y la del arduino UNO, al simularla funciona identico a la realidad, entonces piendo que la simulacion es muy fiable, luego realice la conexion con un PIC18F4550 mediante SPI y basandome en las especificaciones de la hoja de datos logre iniciarla y montar colores en la simulacion, el siguiente paso es conectar la pantalla real pero no tengo la descripcion de los pines.

Quiero saber si alguien lo a realizado? Gracias.
 
Última edición:
Atrás
Arriba