Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos » Arduino y Raspberry Pi
Foros Registrarse ¿Olvidaste tu contraseña?
14/06/2015 #1


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.


Si antes de imprimir la variable relleno un marco donde lo hago con el color de fondo, esta me parpadea, 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.
14/06/2015 #2

Avatar de Ardogan

El color de fondo los podes definir con fill?: en setup() poner
tft.fill(0,0,0); //color de relleno/fondo = negro
15/06/2015 #3


Ardogan dijo: Ver Mensaje
El color de fondo los podes definir con fill?: en setup() poner
tft.fill(0,0,0); //color de relleno/fondo = negro
Si, y?
No entiendo lo que quieres decir.
Saludos
15/06/2015 #4

Avatar de Ardogan

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.
15/06/2015 #5


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.
16/06/2015 #6

Avatar de Ardogan

calpanxo dijo: Ver Mensaje
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/t.../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 )
17/06/2015 #7


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.
25/07/2015 #8

Avatar de COSMICO

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
25/07/2015 #9

Avatar de Nuyel

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
26/07/2015 #10


Nuyel tiene razón, tu lees según coordenadas y a partir de ahí haces lo que quieras.
Y si que funciona con el mega, sin problemas.
Saludos
26/07/2015 #11

Avatar de COSMICO

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.
03/02/2016 #12

Avatar de bivalvo

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/...a-arduino-uno/
http://www.naylampmechatronics.com/b...n-Arduino.html
03/02/2016 #13

Avatar de Ardogan

Y cual es el esquematico de conexión de la tarjeta SD?, todos los pines tienen pull-up? (aun los pines de la SD no utilizados).
03/02/2016 #14

Avatar de bivalvo

Esto es todo cuanto tengo:



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.
05/02/2016 #15

Avatar de Ardogan

bivalvo dijo: Ver Mensaje
...
Además de las pruebas con el multímetro, que me dicen que la tarjeta no se encuentra alimentada...
Ok, pero a la tarjeta le llegan 3V?, estan enchufados VCC y GND de la placa?(supongo que alimentará a la tarjeta desde ahí).
07/02/2016 #16

Avatar de bivalvo

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.
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Arduino y Raspberry Pi

Cerrar
Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos » Arduino y Raspberry Pi

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.