Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Siempre he dicho que todo proyecto por simple o complejo que sea, debería llevar una pantalla, y si esa pantalla esLCD TFT de 2.4”,
táctil, con lector de tarjetas MicroSD y encima, en formato Shield para Arduino UNO,estamos ante un producto de infinitas
posibilidades
Así es el siguiente módulo que nos han cedido desde nuestra tienda colaboradoraElectrohobby.
Como hemos dicho, este shield para Arduino UNO, tiene 3 funciones principales:
Así que después del salto, veremos como conectar, enchufar y usar este fantástico modulo
Al tener formato Shield para Arduino UNO, tendrá todos los pines conectados a nuestro Arduino, por lo que ya nos preocuparemos en
el código de los sketchs de configurar los pines que utiliza.
Solo hay una manera de pincharlo en el Arduino UNO, haciendo coincidir los pines macho del shield con los pines hembra del Arduino
Como se aprecia en la imagen, debemostener cuidado al pinchar el módulo, ya que éste cubre la totalidad de la placa Arduino, por
lo que es recomendable cubrir el conector USB del Arduino, con una cinta aislante, para evitar que se produzca algún cortocircuito
al pinchar el shield a fondo.
Procedemos a colocar nuestro Shield + Arduino en la tabla de Arduino UNO R3 deElectrohobby para poder trabajar con mayor
comodidad y enchufamos el conector USB al Arduino.
Antes de empezar, aclarar que vamos a utilizar la versión del IDE de Arduino 1.0.
Para poder usar todas las funciones del shield, necesitamos varias librerías con algunas modificaciones de código que he tenido que
hacerles para poder utilizar el shield, por lo que no disponen de los ejemplos oficiales que traen las librerías por defecto, sino unos
ejemplos que he preparado para poder poner en funcionamiento el shield TFT:
Librería Adafruit_TFTLCD: Esta es la librería Adafruit_TFTLCD original, que incluye drivers de varias pantallas con diferentes chips
(ILI9325, ILI9341,HX8347G, HX8357) , por lo que debemos seleccionar el chip correcto en el código del sketch para poder visualizar
texto, gráficos e imágenes en nuestra pantalla LCD.
Librería Adafruit_GFX: Esta librería de Adafruit es la que nos proporcionará el código necesario para la realización de gráficos en la
pantalla (puntos, círculos, lineas, etc)
Librería TouchScreen: Librería que se encarga de traducir e interpretar las coordenadas, para poder trabajar con el panel táctil
resistivo de 4 hilos que incluye nuestro shield.
Librería SD: Es la librería que incluye el entorno de Arduino por defecto para el acceso y comunicación con tarjetas SD, o en nuestro
caso, MicroSD.
Librería SPI: Las tarjetas SD o MicroSD se comunican mediante el bus SPI con nuestro Arduino, por lo que es necesaria esta librería
para poder acceder a la tarjeta.
Descarga las librerías desde aqui: LIBRERÍAS PARA TFT SD 2.4″ SHIELD
Es muy importante descargar TODAS las librerías y colocarlas correctamente en la carpeta de librerías del IDE de Arduino
(Arduino>Libraries), si no están todas las librerías y bien situadas, el shield TFT LCD no funcionará.
En el caso de utilizar la última versión de Arduino, 1.6.3, podemos obviar la colocación de las librerías SPI y SD ya que el propio
entorno de Arduino trae una versión más actualizada de estas, por lo que podemos utilizar la versión de Arduino 1.0 o la última
versión.
Colocadas las librerías, abrimos el entorno de Arduino 1.0 y procedemos a ver los 3 ejemplos de las 3 funciones principales de este
shield.
#define BLACK 0x0000 // Definimos los colores para poder referirnos a ellos con su nombre
#define RED 0xF800 // en lugar de usar el código hexadecimal de cada uno.
#define GREEN 0x07E0
#define WHITE 0xFFFF
#define BLUE 0x001F
#define CYAN 0x07FF
#define YELLOW 0xFFE0
#define MAGENTA 0xF81F
void setup(void)
{
tft.begin(0x9341); // Iniciamos el LCD especificando el controlador de nuestro LC. En este caso el ILI9341.
// Otros controladores: 0x9325, 0x9328,0x7575, 0x9341, 0x8357.
void loop(void)
{
tft.setRotation(0); // Establecemos la posición de la pantalla Vertical u Horizontal
tft.setCursor(40, 10); // Situamos el cursor en la posicion del LCD deseada,
// (X, Y) siendo X el ancho (240 px max.) e Y el alto (320 px max.)
tft.drawLine(20, 65, 200, 70, GREEN); // Dibujamos una linea (Punto inicio X, Punto inicio Y, Punto final X, Punto final Y, Color)
int X = tft.width(); // Almacenamos en la variable entera X el ancho del LCD en pixeles mediante tft.width();
int Y = tft.height(); // Almacenamos en la variable entera Y el alto del LCD en pixeles mediante tft.height();
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, YELLOW); // Dibujamos un cuadrado/rectangulo sin color de relleno
// (Punto inicial X, Punto inicial Y, Longitud X,Longitud Y, Color)
tft.drawRoundRect(20, 245, 130, 60, 20, RED); // Dibujamos un cuadrado/rectangulo con los bordes redondeados sin color de relle
no
// (Punto inicial X, Punto inicial Y, Longitud X,Longitud Y, Radio de los vertices, Color)
tft.fillRoundRect(35, 255, 100, 40, 15, YELLOW); // Dibujamos un cuadrado/rectangulo con los vertices redondeados relleno de col
or
// (Punto inicial X, Punto inicial Y, Longitud X,Longitud Y, Radio de los vertices, Color)
delay(10000);
}
Analizamos un poco el código por partes y vemos que tenemoslas librerías necesarias para trabajar con el LCD y la librería para la
realización de gráficos, la declaración de los pines necesarios, y la instancia del LCD con los pines correspondientes. Utilizaremos
para el LCD todos pines analógicos, del A0 al A4, puesto que es un shield no podemos modificarlos.
#include <Adafruit_GFX.h> // Libreria de graficos
#include <Adafruit_TFTLCD.h> // Libreria de LCD
Posteriormente en el código tenemos la declaración de los colores que utilizaremos en el LCD para dar color a las formas, texto y
fondo.
Entramos en el void setup(void) y vemos que la primera linea, es la llamada a la funcióntft.begin(0x9341);, que iniciará el LCD y le
indicará que drivers y registros debe utilizar, por lo que debemos colocar en la variable de esta función, el driver correspondiente a
nuestro LCD.
void setup(void)
{
tft.begin(0x9341); // Especificamos el controlador de nuestro LCD.
En este caso el ILI9341.
// Otros controladores: 0x9325, 0x9328,0x7575, 0x9341, 0x8357.
Y seguido vemos la linea de código que hace la llamada a la función que “pintará” el fondo de nuestro LCD,tft.fillScreen(COLOR);, del
color que elijamos, en mi caso negro.
Esto se realiza en el void setup(void); para que solo lo realice una vez.
Vamos al void loop() y vemos todas las funciones que incluye la librería para la realización de gráficos, cuadrados, círculos, líneas, y la
escritura de texto, con todos sus parámetros.
Vamos a analizar las primeras lineas y funciones:
void loop()
{
tft.setRotation(0); // Establecemos la pantalla Vertical u Horizontal
tft.setCursor(40, 10); // Situamos el cursor
tft.setTextSize(5); // Definimos tamaño del texto.
tft.setTextColor(CYAN); // Definimos el color del texto
tft.println("Texto"); // Escribimos nuestro texto en el LCD
tft.drawLine(20, 65, 200, 70, GREEN); // Dibujamos una linea
int X = tft.width(); // Almacenamos en X el ancho del LCD en px
int Y = tft.height(); // Almacenamos en Y el alto del LCD en px
tft.print("X=");
tft.print(X, DEC); // Imprimimos el valor de las variables en decimal
tft.print(" Y=");
tft.println(Y, DEC);
tft.drawRect(20, 125, 200, 25, YELLOW); // Dibujamos un cuadrado
tft.fillRect(20, 165, 60, 60, BLUE); // Dibujamos un cuadrado relleno
tft.drawCircle(120, 195, 30, WHITE); // Dibujamos un circulo
tft.fillCircle(120, 195, 20, WHITE); // Dibujamos un circulo relleno
}
En el archivo Ejemplo_Grafico.ino que cargamos en nuestro Arduino, al final del código están todas las funciones con las
descripciones de los parámetros necesarios para la realización de gráficos y texto a modo de “chuleta”. Podremos dibujar a placer en
nuestro LCD.
Este shield incluye sobre la pantalla unpanel táctil resistivo de 4 hilos que nos permitirá obtener las coordenadas X e Y donde
pulsemos sobre la pantalla, y por tanto, poder realizar acciones que van desde pintar sobre nuestro LCD como si fuera un “lienzo
digital” o dibujar botones en nuestro LCD que al pulsar sobre ellos realicen una determinada acción.
Para poder utilizar el panel táctil de nuestro shield TFT, nos dirigimos en el IDE de
Arduino 1.0 a File > Examples > Adafruit_TFTLCD > Ejemplo_Tactil
Imagen http://www.ecojoven.com
#include <Adafruit_GFX.h> // Libreria de graficos
#include <Adafruit_TFTLCD.h> // Libreria de LCD
#include <TouchScreen.h> // Libreria del panel tactil
void setup(void)
{
tft.begin(0x9341); // Iniciamos el LCD especificando el controlador ILI9341.
pinMode(13, OUTPUT);
pinMode(ledA,OUTPUT);
pinMode(ledK, OUTPUT);
void loop()
{
lecturaPanel(); // Realizamos lectura del panel para detectar presion y coordena
das
// Si la pulsación del eje X se produce entre los puntos 40 y 160
// Y la pulsacion del eje Y se produce entre los puntos 20 y 60
// Y la presión realizada esta entre el margen determinado
if((X > 40 && X < 200) && (Y > 20 && Y < 60) && (Z > MINPRESSURE && Z <
MAXPRESSURE))
{
if (a == 0) // Si la variable flag esta en 0
{
tft.fillRect(40, 20, 160, 60, RED); // Dibujamos nuestro boton relleno de color
void lecturaPanel()
{
digitalWrite(13, HIGH);
TSPoint p = ts.getPoint(); // Realizamos lectura de las coordenadas
digitalWrite(13, LOW);
Este sketch lo he preparado específicamente para poder ver todas las funciones de la pantalla táctil de un modo simple.
Además de las librerías de los gráficos y del LCD que hemos visto anteriormente, debemos incorporarla librería TouchScreen.h para
poder “leer” las pulsaciones que realizamos sobre el panel táctil.
Vemos que 2 de los pines del panel táctil coinciden con 2 pines del LCD, por lo que posteriormente veremos que debemos declarar
esos pines como entrada o salida en medio del sketch en función de quien de los dos elementos los vaya a utilizar, pero para el panel
táctil es necesario que estos dos pines estén conectados en dos pines de Arduino que dispongan de ADC (conversor analógico-
digital) para poder obtener las lecturas del panel.
Tenemos dos variables MINPRESSURE y MAXPRESSURE que podemos modificar al gusto para establecer la presión mínima o máxima
que debemos hacer sobre la pantalla para detectar la pulsación, puesto que este panel táctil también es capaz de detectar “el eje Z”.
Seguido, la declaración de la instancia del panel táctil, donde apreciamos que debemos colocar los pines que utilizará el panel
táctil previamente declarados y en último lugar, debemos colocar el valor de la resistencia a la corriente eléctrica que tiene el
panel. Cuanto más preciso sea este valor respecto a la resistencia real que tiene nuestro panel, mejor respuesta dará a la hora de
detectar las pulsaciones.
Bien, para medir la resistencia del eje Xde nuestro panel, si miramos los pines del panel táctil, vemos que el pinXP = Digital 6 y pin
XM = Analógico 2, por lo que procedemos a hacer la medición de la resistencia con un multímetro de la siguiente manera:
En mi caso, la resistencia es de 364 Ωy lo colocamos en la instancia del Touchscreen.
Si queremos visualizar elementos en la pantalla LCD, debemos declarar, igual que en el ejemplo gráfico, los pines de utilización del
LCD, y su instancia, etc.
void lecturaPanel()
{
digitalWrite(13, HIGH);
TSPoint p = ts.getPoint(); // Realizamos lectura de las coordenadas
digitalWrite(13, LOW);
Como vemos, realizamos la lectura constantemente del panel, para poder detectar las pulsaciones en todo momento, por lo que
debemos llamar a esta función desde el void loop().
La funcion ts.getPoint(); devuelve las coordenadas X e Y de la pulsación detectada, y utilizando estas coordenadas devueltas desde
el ADC en un valor comprendido entre 0 y 1023
(8 bits), simplemente las mapeamos para convertir dicho valor en un valor comprendido entre 0 y 240 para el eje X, y un valor
comprendido entre 0 y 320 para el eje Y, que corresponderían con el tamaño en pixeles de nuestra pantalla.
En el void loop(); simplemente dibujo un cuadrado con texto “Botón” que al pulsar en las coordenadas que se encuentran dentro de
este cuadrado, cambie de color y muestre otro texto diferente y a su vez, encienda el led que tenemos conectado en el pin digital 5. Si
volvemos a pulsar el botón, el led se apagará y el botón volverá a su “estado de reposo”.
Por último pero no menos importante, vamos a visualizar en el LCD, imágenes en formato BMP de 24 bits almacenadas en la
tarjeta MicroSD del shield.
Como podemos observar en la siguiente imagen, el shield incluye un lector de tarjetas MicroSD conectado a los pines correspondientes
al bus SPI, ya que utilizan este bus para comunicarse.
(Clic aqui para conocer como se comunican las tarjeta SD y Arduino)
– Pin digital 10 – CS / SS (En librería Arduino SD / Este pin es configurable vía software)
– Pin digital 11 – MOSI
– Pin digital 12 – MISO
– Pin digital 13 – CLK
A tener en cuenta que las imágenes que almacenemos en nuestra MicroSD,deben ser imágenes en formato BMP de 24 bits y de
tamaño máximo 320 x 240 pixeles.
Otro tipo de formatos de imagen NO los reconocerá.
Almacenamos varias imágenes en nuestra MicroSD recordando los nombres exactos que les dimos para cargarlas desde el código del
sketch, e introducimos la MicroSD en nuestro Shield.
Procedemos a cargar el ejemplo: File > Examples > Adafruit_TFTLCD > Ejemplo_ImagenesSD
// Los pines del puerto SPI vienen configurados por libreria, por lo que
// solamente debemos colocar el pin correspondiente al Chip Select del
// bus SPI correspondiente a la conexion con la tarjeta SD
#define SD_CS 10
void setup()
{
Serial.begin(9600); // Iniciamos el puerto serie para comprobar
// la comunicacion con la tarjeta microSD
tft.reset();
void loop()
{
tft.setRotation(0); // Establecemos la posicion de la pantalla Vertical
bmpDraw("1.bmp", 0, 0); // Mostramos una imagen en las coordenadas 0,0
delay(1000);
delay(1000);
}
#define BUFFPIXEL 20
File bmpFile;
int bmpWidth, bmpHeight; // W+H in pixels
uint8_t bmpDepth; // Bit depth (currently must be 24)
uint32_t bmpImageoffset; // Start of image data in file
uint32_t rowSize; // Not always = bmpWidth; may have padding
uint8_t sdbuffer[3*BUFFPIXEL]; // pixel in buffer (R+G+B per pixel)
uint16_t lcdbuffer[BUFFPIXEL]; // pixel out buffer (16-bit per pixel)
uint8_t buffidx = sizeof(sdbuffer); // Current position in sdbuffer
boolean goodBmp = false; // Set to true on valid header parse
boolean flip = true; // BMP is stored bottom-to-top
int w, h, row, col;
uint8_t r, g, b;
uint32_t pos = 0, startTime = millis();
uint8_t lcdidx = 0;
boolean first = true;
Serial.println();
Serial.print(F("Loading image '"));
Serial.print(filename);
Serial.println('\'');
// Open requested file on SD card
if ((bmpFile = SD.open(filename)) == NULL) {
Serial.println(F("File not found"));
return;
}
bmpFile.close();
if(!goodBmp) Serial.println(F("BMP format not recognized."));
}
// These read 16- and 32-bit types from the SD card file.
// BMP data is stored little-endian, Arduino is little-endian too.
// May need to reverse subscript order if porting elsewhere.
uint16_t read16(File f) {
uint16_t result;
((uint8_t *)&result)[0] = f.read(); // LSB
((uint8_t *)&result)[1] = f.read(); // MSB
return result;
}
}
uint32_t read32(File f) {
uint32_t result;
((uint8_t *)&result)[0] = f.read(); // LSB
((uint8_t *)&result)[1] = f.read();
((uint8_t *)&result)[2] = f.read();
((uint8_t *)&result)[3] = f.read(); // MSB
return result;
}
En este caso, debemos añadir además de las librerías ya utilizadas para realización de gráficos y utilización del LCD, las librerías
correspondientes a la tarjeta, <SD.h> y al bus SPI, <SPI.h>
Declaramos los pines del LCD del mismo modo que en el ejemplo gráfico y el TouchScreen.
Dado que los pines del zócalo de la tarjeta MicroSD del shield, están conectados a los pines del bus SPI de Arduino, no es
necesario declararlos puesto que vienen declarados en la librería SPI de Arduino, solamente debemos declarar el pin CS que será el
que determine la comunicación entre el maestro (Arduino) y el esclavo (MicroSD).
Por tanto, comprobamos y el shield tiene el pin CS en el correspondiente al pin Digital 10.
void setup()
{
Serial.begin(9600); // Iniciamos el puerto serie para comprobar
// la comunicacion con la tarjeta microSD
Iniciamos el Serial Monitor para poder obtener resultados del proceso de comunicación con la tarjeta SD y comprobar que todo ha
sido correcto.
Inicializamos el LCD con el driver correcto e intentamos acceder a la tarjeta SD mediante la funcion SD.begin(SD_CS); Si todo va bien,
veremos un “OK!” en el Serial Monitor y podremos acceder a nuestro SD para visualizar nuestras imágenes.
En este caso, establecemos la rotación de la pantalla, en vertical u horizontal mediante la funcióntft.setRotation(0); en función de las
imágenes que vayamos a mostrar por el LCD.
Y para visualizar las imágenes, llamamos a la funciónbmpDraw(“NombreImagen.bmp”, X, Y);, pasando como parámetros el nombre
EXACTO que tiene nuestra imagen almacenada en la MicroSD y las coordenadas X e Y de donde queremos mostrarla en la pantalla.
Esta función viene incluida en el sketch tftbmp de la librería de Adafruit y funciona muy bien.
Resumiendo, es un fantástico módulo shield que podremos utilizar en muchos proyectos diferentes añadiendo un elemento actual y
moderno como son las pantallas táctiles, visualizando gráficos a todo color ya sean imágenes, botones o texto y pudiendo leer y
escribir datos o imágenes desde la tarjeta MicroSD.
♦ Resolución de problemas
Si teniendo todas las librerías descargadas y correctamente colocadas, al iniciar cualquiera de los sketchs propuestos en este tutorial,
lo que vemos es la pantalla llena de pixeles de colores:
Es posible que el chip de nuestro LCD sea diferente al que estamos configurando, por lo que debemos probar con los diferentes
drivers que incluye esta librería de Adafruit para poder inicializar correctamente el LCD.
Modificando la siguiente linea de código de nuestro sketch, cambiamos el valor entre paréntesis por alguno de los otros controladores
disponibles y vamos probando para comprobar cuál es el driver que necesita nuestro LCD.
Tu
voto:
16 Votos
Comparte este
post:
Relacionado
← ROBOT CONTROLADO POR INFRARROJOS TFT LCD TOUCH 2.4” SHIELD PARA ARDUINO MEGA
→
EdgarL
25/11/2015 de 18:59
2 0 Vota este
comentario
Hola, hay forma de hacer que las imagenes aparescan mas rapido en la LCD?
No me agrada que se demore tanto en cargar las imagenes, he estado buscando la forma de modificar esto pero no encuentro
solucion, Alguna idea???
Gracias de antemano
Saludos a todos.
RESPONDER
BeYou
31/01/2018 de 23:43
0 0 Vota este
comentario
Usa la interface paralela. O usa un Teensy, Due, ESP8266 o cualquier mcu que tenga capacidad DMA.
RESPONDER
Rafael
11/12/2015 de 16:39
0 0 Vota este
comentario
Hay forma de reiniciar las variables X,Y,Z?
RESPONDER
1 1 Vota este
comentario
el touch produce que se detenga el codigo.. no muestra error pero deja de ejecutarse.,,. imprimi los valores de X e Y en una consola y
cuando toco la pantalla deja de imprimir valores. .. puedes ayudarme?
RESPONDER
Sam
03/02/2016 de 04:04
0 0 Vota este
comentario
Hola. hay alguna instruccion para apagar solo la pantalla? o ponerla en suspension?
gracias
RESPONDER
0 0 Vota este
comentario
[…] TFT LCD Touch 2.4″ […]
RESPONDER
eduardo
mena
12/03/2016 de 20:48
2 0 Vota este
comentario
porque con la misma codificacion me aparece la pagina invertida como si la viera mediante un espejo?
RESPONDER
arnyminerz
18/07/2016 de 16:38
0 0 Vota este
comentario
En vez de poner sólo tft.begin(0x9341); .
Pon:
tft.reset();
tft.begin(0x9341);
tft.setRotation(2);
Puedes cambiar el dos en setRotation, por el numero de la orientación de pantalla que quieras, del 0 al 3. Es decir, 0 vertical, 1,
horizontal…
RESPONDER
Arthur
04/08/2016 de 22:33
0 0 Vota este
comentario
Hola, estoy probando con esta pantalla y me sale invertido, pero si cambio la rotación solo me cambia el angulo, es decir
por ejemplo texto me escribe otxet ,como si mirara la pantalla desde detrás no se si me explico
RESPONDER
oscar
16/06/2017 de 13:29
0 0 Vota este
comentario
comprueba que en tft.begin(0x9341); no tengas este 0x8357, si lo tienes, cambialo por 0x9341
ElectroMx
Hdz
07/09/2017 de 07:37
0 0 Vota este
comentario
has logrado solucionar el problema del texto invertido??? xf si es asi comenta
kras
14/09/2017 de 10:13
0 0 Vota este
comentario
hola me pasa lo mismo la pantalla se ve edn modo espejo he probado todo y sigue igual el controlador es 7575
pero en segun k programas para saber cual es el controlador me sale en el serial que es 4545
gracias
PESBO
14/03/2016 de 15:31
0 0 Vota este
comentario
PREGUNTO ES NECESARIA LA TARGETA SD PARA QUE FUNCIONE LA LCD? PORQUE COMPILO TODO Y CARGO EL CODIGO PERO LA
PANTALLA SE QUEDA EN BLANCO GRACIAS
RESPONDER
Julie
01/04/2016 de 02:44
0 0 Vota este
comentario
Quizas sea porque no estás cargando el driver de tu pantalla. El driver varia de acuerdo al fabricante. A mi me pasaba lo mismo,
solo cambie esta parte: tft.begin(0x9341); y puse esto: tft.begin(0x9325); y me funciono. Puedes intentar con otros
controladores como estos: 0x9325, 0x9328, 0x7575, 0x9341, 0x8357, que son los que trae la libreria que descargas de aqui.
Espero que haya servido de ayuda.
Saludos.
RESPONDER
ian
05/05/2016 de 08:44
0 0 Vota este
comentario
ninguno de los controladores de la libreria hace que mi pantalla funcione
RESPONDER
Harold
01/06/2016 de 02:31
0 0 Vota este
comentario
Hola ian, pudiste solucionar tu problea, me pasa lo mismo.
jumaval
25/07/2016 de 02:06
0 0 Vota este
comentario
Hola; a mi me paso igual y lo solucione reinstalando el IDE. 1.6.9. Acontinuación intale las librerias en el ide carge
el programa y a funcionar.
Mi pc es un w10 y por si las moscas instale los drivers de la targeta de forma aparte pues no me cargaban
ninguna libreria solo funcionaba el blink.
JesusG
11/09/2017 de 22:48
0 0 Vota este
comentario
Ayuda me pasa lo mismo!! Pudiste solucionar tu problema?? … Ya intente de todo y la pantalla sigue en blanco!!
RESPONDER
Manuel
Gutierrez
03/07/2016 de 21:30
0 0 Vota este
comentario
Esta excelente tu presentacion, me parece de lo mas amigable la forma en que expones, solo tengo una pregunta, tengo una pantalla
que tiene la nomenclatura un poco diferente de la que muestras, todo funciona muy bien solo que no se como medir la resistencia de
los pines de la pantalla tactil, me perdi y no puedo hacer funcionar el ejemplo tactil, me podrias decir que numero de pin es el que
debo medir, como podras observar no se mucho de estas cuestiones y me es dificil identificar en cual es. por tu ayuda muchas gracias
RESPONDER
JaTo
08/07/2016 de 19:13
0 0 Vota este
comentario
Enhorabuena por el trabajo y gracias por publicarlo. Si no fuera por estas ayuditas…
En mi caso el TFT bien pero el Touch creo que viene roto. Con el ejemplo “touchscreendemoshield” el eje X varía entre 138-878 pero el
eje Y solo entre 30-63, poquísima resolución. Resistencia medida y configurada en 320 ohm.
RESPONDER
Osmar
11/07/2016 de 01:46
0 0 Vota este
comentario
Yo no puedo hacer funcionar el lcd me carga el programa pero no muestra nada, el ruido que uso es el maga 2560 alguno me puede
ayudar, y la library touchscreem me la da como error…….
RESPONDER
Arturo
13/07/2016 de 02:04
0 0 Vota este
comentario
Hola, He probado con una pantalla y funcionó bastante bien, pero ahora que vuelvo a usar en una pantalla nueva no me está
funcionando.
Solo por unos instantes (algúnos milisegundos) aparece la imagen y al instante siguiente la pantalla queda en blanco. ¿tendrán idea de
porqué sucede esto?
RESPONDER
Luisda
25/07/2016 de 01:10
0 0 Vota este
comentario
Chapeau. Magnífico tutorial, se agradece después de estar un buen rato buscando documentación acerca de un LCD shield que me
regalaron por mi cumple, igualito al tuyo.
Lo único, el touch no funciona, he debugueado las posiciones X e Y y siempre devuelve los mismos valores. La pantalla tiene una raja,
¿puede ser por esa razón?
Asimismo, ¿sabrías si en alguna tienda de electrónica podría encontrar otro LCD con su shield?
RESPONDER
Luisda
25/07/2016 de 01:12
0 0 Vota este
comentario
PD: Por si sirve de algo, utilizo la Arduino Uno, y he empleado los tutoriales que vienen de ejemplo. El de gráficos se pinta de
miedo, y el otro sólo sale la pantalla en cian y el botón con el texto rojo también sobre fondo cian, pero no reacciona a las
pulsaciones.
Pero me temo que será por eso, porque el sensor de la pantalla tiene una raja.
RESPONDER
Luisda
25/07/2016 de 01:32
0 0 Vota este
comentario
Vale, he medido la resistencia entre el pin X+ (A2) y el X- (D6) y me sale un valor exageradamente alto, 8.9 MOhm. Se lo
he puesto y sigue sin detectarme las pulsaciones. ¿Es normal un valor tan alto de resistencia?
RESPONDER
Jesus
29/07/2016 de 18:25
0 0 Vota este
comentario
Hola buenos días solo tengo una duda espero y puedas resolver en este tipo de pantallas se puede hacer un diseño (una caja de
texto/Textbox) el cual puedas ingresar texto con la misma pantalla?
RESPONDER
Luisda
31/07/2016 de 03:08
0 0 Vota este
comentario
Buenas, Jesús.
Pues, desde mi ignorancia o básica experiencia, por poder, podrías, pero tendrías que implementar un mecanismo que te
saque un teclado similar al que tienen los smartphones, no sé si me entiendes (y no parece muy trivial ). Dicho de otro
modo, sería algo así:
– Lees pulsaciones. Si ha habido una pulsación dentro de esa región, hacer aparecer en la mitad inferior de la pantalla el
teclado táctil, como sale en los smartphones.
– Una vez abierto el teclado, atender a las pulsaciones de la pantalla sobre el mismo y, en función de la región pinchada,
determinar la tecla pulsada.
¿Qué inconveniente le veo a esto? Que ocuparía bastante memoria, tanto de programa como posiblemente RAM, y, así como en
un sistema Android sí cabe por tener RAM suficiente, en una Arduino como la UNO (o, mejor dicho, en un microcontrolador de
esas características), es probable que o el IDE de Arduino te avise de que estás ocupando bastante memoria de programa (si
excedes el límite, ya sabes, directamente no se dejará programar o cargará parte del programa y la placa se comportará de
forma errática) o RAM (en caso de que el programa sí quepa, puede que ralentice el funcionamiento de la Arduino).
Bueno, mucho ánimo. Aunque yo empezaría por algo más sencillo, por ejemplo, un teclado solamente numérico.
RESPONDER
0 0 Vota este
comentario
[…] TFT LCD Touch 2.4” Shield para Arduino UNO […]
RESPONDER
Manuelez
25/09/2016 de 04:42
0 0 Vota este
comentario
Hola estimado
Gracias por tu gran aporte, me está ayudando mucho. Tengo una pregunta, para un arduino mega es necesario que los pines LCD y SD
de la pantalla vayan a E/S PWM ?? pueden ir a pines digitales? … esa es mi consulta. Espero tu respuesta , de antemano muchas gracias.
RESPONDER
Abel
05/10/2016 de 00:52
0 0 Vota este
comentario
hola…alguien talvez pueda ayudarme…al graficar y querer hacer que el grafico se mueva…logro hacerlo de dos formas una
dibujandola de algun color y luego volverla adibujar con el mismo valor pero con el color de fondo (ej BLACK)… y la imagen se mueve
pero parpadea (por razones obvias jeje) pero el parpadeo puede controlarse con un delay aun asi es molesto que parpadee…otra
solucion que le di fue poner un fillScreen (con el color de fondo) despues de que realize algun movimiento…y aun asi es molesto que
cada rato haya un barrido de la pantalla limpiandola…existe alguna buena solucion aparte de la mia?….aah si tambien hice otra que
solo parpadee cuando esta en movimiento cuando esta estatica entonces se queda sin parpadear…
ayuda porfavor mi correo (por si alguien desea ayudarme )es: aaabeeelooon@gmail.com
RESPONDER
xavier.xam@gmail.com
11/10/2016 de 00:37
0 0 Vota este
comentario
Hola
una pregunta…
porque con mi arduino due + tft qvt320 no me funciona?
porque hay tantas pocas cosas en arduino due?
xavier.xam@gmail.com
gracias
RESPONDER
maxim
11/10/2016 de 12:29
1 0 Vota este
comentario
здравствуйте а можно сделать 3 таких кнопки? подскажите как?
RESPONDER
Jhon
17/11/2016 de 02:06
0 0 Vota este
comentario
hola es posible conectar esta shield a una raspberry pi.
RESPONDER
sergifez
30/12/2016 de 10:51
0 0 Vota este
comentario
Funciona perfecto, muchas gracias.
Solo un problemilla, la capa táctil esta como invertida, es decir si pulsos la esquina inferior derecha, reconoce la esquina superior
izquierda. nose si me explico.
RESPONDER
BeYou
31/01/2018 de 23:47
0 0 Vota este
comentario
Tu código. Solo tienes que mapear los valores de acuerdo a la orientación correcta. Lo puedes ajustar modificando los
parámetros que pasas en las funciones map()
RESPONDER
Deja un comentario!
Canal de Youtube
Tiendas recomendadas
Twitter
¿Alguien me sabe decir dónde puedo comprar filamento PLA 1,75 mm pero el que es semitransparente? Gracias! #3dprinting
3 years ago
Según el dicho: Vida nueva, extrusor nuevo! Calibrando Mk8. J-Head a pasado a mejor vida. #3dprinting @Nativa3D
https://t.co/SSm8B1i18f 3 years ago
RT @MediaInv: La tecnología ha cambiado nuestras vidas y nuestro modo de ver el correo.http://t.co/D9XpowlHh5 4 years ago
RT @Atmel: #OnThisDay in 1984, Tetris was first released:bit.ly/1AUAaTI http://t.co/j4cpdcxgHL 5 years ago
Calendario
marzo 2015
L M X J V S D
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
« Ene May »
Categorías
Arduino (18)
General (13)
Instrumentacion/Materiales (11)
Robotica (2)
Nube de Etiquetas
78XX Agua Oxigenada Alarma Algebra de Boole Amplificación Amplificador Analógica Arduino Arduino UNO Atacado
Atmega328 Atmel AVR Audio Baja Frecuencia Biestables Cables Circuito Circuitos impresos Clase A Clase B Cobre Componente
Componentes Código Diodo Diodos Display LCD DS1307 Ejercicios Electronics and Electrical Electrónica Electrónica
Analógica Etapas Filtros Fuente de Alimentacion Funcionamiento Herramientas ILI9341 Instrumentación IR LCD LDM Leds
Lógica Digital MCUFriend Multivibrador astable Navidad Oscilador Pads PCB Placa Polarización Printed Circuit Board Programación
Puertas Lógicas Rectificador Rectificadores Resistencias Robot Sensor Servomotor Señales Shield Soldadura Tactil TFT Tiristor
Touchscreen Transformador Transistor UAA180 UNO Vúmetro Zener Ácido
SUSCRIBIRME!
Sitios interesantes
Electrónica y Robótica Blog dedicado a compartir información, circuitos y mas, con temas de electrónica, robótica y programación.
Simplificate 2.0 Si algo parece muy complicado, es que está mal explicado.
Registrarse
Acceder
Feed de entradas
Feed de comentarios
WordPress.com
Archivo
Elegir mes
Páginas
Contacto
Sobre el Blog
Privacidad & Cookies: este sitio usa cookies. Al continuar usando este sitio, estás de acuerdo con su uso. Para saber más, incluyendo como controlar las cookies,
CREA UN BLOG O UN SITIO WEB GRATUITOS CON WORDPRESS.COM.
mira aquí: Política de Cookies.
Cerrar y aceptar