Skip to Content

Interfacing 1.8-inch TFT Color Display With Arduino

Interfacing 1.8-inch TFT Color Display With Arduino

Las pantallas TFT existen desde hace décadas. Estas pantallas LCD de bajo coste y fácil manejo son esenciales para el diseño de la interfaz hombre-máquina.

La disponibilidad de librerías ligeras facilita la construcción de sus propios proyectos Arduino con pantallas TFT.

En este artículo le mostraré un módulo de pantalla TFT genérico de 1,8 pulgadas.

Aprenderás cómo conectar el controlador TFT a un Arduino UNO, los pinouts de la placa de visualización TFT y el ejemplo de código Arduino.

Puede utilizar las pantallas TFT en productos HMI como controladores de temperatura de habitaciones y sistemas de asistencia, dispositivos de control meteorológico, sistemas de infoentretenimiento e incluso consolas de videojuegos.

Al final de este artículo, podrás crear tu texto y cambiar los colores según tus preferencias.

A continuación, puede empezar a construir proyectos en función de sus necesidades.

¡Comencemos!

Componentes necesarios para construir un proyecto con Arduino y una pantalla TFT

Componentes de hardware 

Software

Makerguides.com participa en el Programa de Asociados de Amazon Services LLC, un programa de publicidad de afiliados diseñado para proporcionar un medio para que los sitios ganen honorarios de publicidad mediante la publicidad y los enlaces a productos en Amazon.com.

¿Qué es un módulo de visualización TFT?

Este artículo forma parte de nuestra serie sobre los diferentes tipos de pantallas que puedes utilizar con Arduino, así que si estás sopesando las opciones, consulta nuestra guía sobre las mejores pantallas para utilizar con Arduino.

TFT LCD son las siglas de Thin Film Transistor Liquid Crystal Display. La pantalla puede estar en pantallas, tabletas, teléfonos móviles, quioscos y más. 

Veamos una vista de un módulo TFT LCD. En la siguiente sección, veremos la definición de pines y la tabla de asignación de pines para la conexión entre Arduino y la pantalla TFT.

Módulo de pantalla TFT
Arduino y la pantalla TFT
Nombre de la clavijaTipo de clavijaDescripción
LEDSuministroConecte 3,3 V a este pin. 
SCKPin de reloj SPIPin de reloj SPI. Dependiendo del tipo de placa Arduino, tienes que configurar las conexiones de los pines en consecuencia. 
SDAPin de datos SPIPin de datos SPI. Dependiendo del tipo de placa Arduino, tienes que configurar las conexiones de los pines en consecuencia. 
A0 / DCPin de selección de comando de datos / Pin analógicoLa mayoría de las veces, usted tiene que encontrar la terminación relevante necesaria de la hoja de datos de la LCD. Terminar este pin a Lógica alta usando un 10 ㏀
RESETClavija de reinicioReinicia el controlador LCD
CSSelección de chipLínea de selección de chip SPI
GNDConexiones a tierraConexiones a tierra. Utilice siempre un cable corto para las conexiones GND.
VCC3,3 V - 5 VClavija de alimentación para el LCD

Puede encontrar un ejemplo de hoja de datos de un controlador de pantalla TFT aquí. Por favor, visite el enlace para obtener más información sobre la interfaz SPI en Arduino. 

El ST7735 es un CI controlador de LCD utilizado en muchos módulos de pantalla TFT.

Las líneas SPI del Arduino UNO se comunican con el IC ST7735.

Aquí están los detalles del protocolo básico de la hoja de datos del ST7735. 

La siguiente forma de onda presenta el estado de las líneas SPI (selección de chip, línea de datos I2C, línea de reloj I2C) características de temporización.

el estado de las líneas SPI

La trama de datos se escribe a través del protocolo SPI de la siguiente manera.

RGB son los colores primarios

Los RGB son los colores primarios. El formato RGB 4-4-4 significa que los colores rojo, verde y azul se representan con información de 4 bits de ancho.

Como tiene 4 bits de ancho, los niveles máximos posibles para cada color son 16. Se pueden crear 4096 colores.

Existen opciones para aumentar la profundidad de color. El RGB 5-6-5 es otro formato que puede producir hasta (32 x 64 x 32) = 65536 colores.

Aquí puedes ver la compensación. Si se opta por una mejor resolución de color, se obtienen opciones de visualización vibrantes, pero el uso de la memoria aumentará con la resolución de color.

Por ejemplo, una imagen de un ancho de 240 x 320 consumirá diferentes cantidades de memoria en función de los formatos elegidos.

  • 240 X 320 = 76800 píxeles
  • Cada píxel necesita 12 bits para representar el color en formato RGB 4-4-4
  • 12 * 76800 = 921.600 bits para toda la imagen
  • En el caso del formato RGB 5-6-5, la información de color de cada píxel consumirá 16 bits
  • 16 * 76800 = 1.228.000 bits

La memoria total necesaria aumenta un 33% si se pasa del formato RBG 4-4-4 al RGB 5-6-5. Esto aumenta la demanda de la RAM de la MCU, el tamaño del código y el tiempo de retardo para transferir datos más altos.

Por lo tanto, es conveniente planificar por adelantado los requisitos de memoria y la calidad del color.

Espero que esto haya servido para comprender la lógica de las decisiones sobre el formato de color.

Nota: Los cálculos mostrados arriba son una estimación aproximada. Dependiendo del formato, hay que rellenar algunos bits ficticios, que se suman a los bits de memoria consumidos.

Instrucciones paso a paso para conectar una pantalla TFT a un Arduino

La siguiente sección ofrece detalles paso a paso para conectar la pantalla TFT a su placa Arduino.

Es posible que encuentres varias versiones de la pantalla TFT de varias fuentes.

La mayoría de las pantallas TFT de 1,8 pulgadas, están controladas por SPI, y verás que incluso los mapeos de pines coinciden.

¿Cómo conectar la pantalla TFT al Arduino UNO?

Aquí están los detalles necesarios para completar el Arduino y la pantalla TFT de 1,8 pulgadas.

La conexión final tiene el aspecto de la siguiente imagen.

Cómo conectar la pantalla TFT al Arduino UNO

Paso 1: Comencemos con la pantalla TFT

Empecemos por la pantalla TFT

Hay pines en ambos lados de la placa. En el lado derecho, tienes pines relacionados con la pantalla y la alimentación.

En el lado izquierdo, tienes los pines relacionados con la interfaz de la tarjeta SD.

Paso 2: Conectar el pin de reloj SPI al Arduino

Conecta el pin del reloj SPI al Arduino

Conecta el pin 13 del Arduino al pin SCK del módulo de visualización.

Paso 3: Conexión del pin SDA

Conexión del pin SDA

Conecta el pin 11 del Arduino UNO al pin SDA de la pantalla

Paso 4: Conexión A0

Conexión A0

Conecta el pin 9 del Arduino UNO al pin A0 del módulo LCD.

Paso 5: Conexión de la clavija de RESET

Conexión del pin RESET

Conecta el pin 8 del Arduino UNO al pin de Reset del módulo LCD.

Paso 6: Conexión de la línea CS

Conexión de la línea CS

El Chip select debe conectarse al pin 10 del Arduino UNO, como se muestra en la figura

Paso 7: Conexión a tierra

Conexión a tierra

Conecte el pin de tierra de la placa LCD al pin GND del Arduino. Puedes elegir cualquiera de los pines GND disponibles en el Arduino UNO. 

Paso 8: Conexión de la fuente de alimentación

Conexión a la red eléctrica

La alimentación de 5 V de Arduino alimenta el LCD a través de este pin. 

Paso 9: Conecta el pin del LED de la pantalla al pin de 3,3 V del Arduino

Conecta el pin del LED de la pantalla al pin de 3,3 V del Arduino

Paso 10: Resumen de la conexión de Arduino y la pantalla TFT

Resumen completo de la conexión de Arduino y la pantalla TFT

El módulo LCD acepta 5 V como entrada. Conecta el pin de 5 V del Arduino al pin de 5 V del LCD. 

Esto completa las conexiones esenciales necesarias para manejar una pantalla TFT desde un Arduino UNO.

Enhorabuena.

Pantalla TFT de 1,8 pulgadas Ejemplos de código Arduino

En esta sección, te llevaré a través de un simple programa de Arduino que es muy fácil de entender y modificar por tu cuenta.

La fuente del código se conserva en la sección de comentarios del código.

El código Arduino de abajo muestra el texto "¡Hola, mundo!" en la pantalla. El color de la fuente cambiará cada 200 ms. 

El código completo de Arduino

Abre el IDE de Arduino y haz clic en la opción "Archivo". Bajo las opciones de archivo, selecciona "Nuevo".

#include "TFT.h"
#include "SPI.h"
 
#define cs   10
#define dc   9
#define rst  8
 
TFT TFTscreen = TFT(cs, dc, rst);
 
void setup() {
  TFTscreen.begin();
  TFTscreen.background(0, 0, 0);
  TFTscreen.setTextSize(2);
}
 
void loop() {
  int redRandom = random(0, 255);
  int greenRandom = random (0, 255);
  int blueRandom = random (0, 255);
 
  TFTscreen.stroke(redRandom, greenRandom, blueRandom);
 
  TFTscreen.text("Hello, World!", 6, 57);
 
  delay(200);
}

Pantalla TFT y código Arduino

El resumen del código de Arduino está disponible a continuación. 

Las dos líneas siguientes añaden las bibliotecas necesarias para el módulo de visualización.

Las cabeceras TFT y SPI contienen las funciones necesarias para interactuar con la pantalla a través de la línea SPI.

#include "TFT.h"
#include "SPI.h"

Aquí, estás mapeando los pines del Arduino UNO al pin de selección de chip, al pin de comando de datos y al pin de reset.

#define cs 10
#define dc 9
#define rst 8

Si está utilizando un Arduino Mega o cualquier otra placa Arduino, debe actualizar los números de pin en consecuencia.

TFTscreen = TFT(cs, dc, rst);

Estamos creando el objeto de nombre TFTScreen de tipo TFT.

Aquí enviaremos los números de los pines a los que se conectan la selección de chip, los datos/comandos y los pines de RESET.

  int redRandom = random(0, 255);
  int greenRandom = random (0, 255);
  int blueRandom = random (0, 255);

En las líneas anteriores se están creando números aleatorios entre 0 y 255.

Más tarde, lo asignará al píxel rojoRandom.

En la misma línea, también generas dos números aleatorios y los asignas a las variables greenRandom y blueRandom.

  TFTscreen.stroke(redRandom, greenRandom, blueRandom);

La función stroke bajo la clase TFTscreen establece el color a los valores enviados como argumentos.

En esta función, se envían los valores una vez cada 200 ms utilizando la función delay() que aparece a continuación.

  delay(200);

La función siguiente muestra el texto introducido entre comillas dobles.

  TFTscreen.text("Hello, World!", 6, 57);

Nota: Aquí hay un enlace a un simulador de Arduino en línea que puede simular Arduino UNO, LCDs, y más. Puedes encontrar algunos ejemplos aquí.

Preguntas frecuentes sobre la pantalla TFT en color de 1,8 pulgadas de Arduino

En esta sección, obtendrá respuestas a las preguntas más frecuentes sobre el Arduino y los proyectos de pantallas TFT de 1,8 pulgadas.

Si su pregunta aún no ha sido respondida, por favor publique la pregunta en la sección de comentarios.

Estaré encantado de responder.

1) ¿Cómo programo la pantalla LCD TFT?

Puede programar la pantalla LCD TFT comúnmente disponible usando SPI (Serial Peripheral Interface). Hay varias versiones de los módulos disponibles.

La mayoría de ellos vienen también con un soporte adicional para tarjetas SD. Puedes probar el proyecto descrito en el artículo anterior. 

2) ¿Qué pantalla es mejor, la TFT o la LCD monocromática?

There is a trade-off between the quality of the display, power consumption, and the simplicity of coding. The TFT displays consume more power and need more programming than a simple monochrome display. 

Las pantallas TFT ofrecen una frecuencia de actualización más rápida y proporcionan transiciones más suaves. El procesamiento más rápido mejora el aspecto y la sensación de la llamada experiencia de usuario para el usuario.

El mayor consumo de energía es la desventaja de las pantallas TFT, ya que no son la opción favorita para los dispositivos alimentados por batería.

3) ¿Puede Arduino manejar una pantalla?

Sí, Arduino puede controlar las pantallas más pequeñas. Hay varias pantallas LCD con controladores incorporados que soportan interfaces SPI/I2C. 

El Arduino puede manejar las placas. Puedes encontrar un ejemplo en el artículo anterior. 

El Arduino no necesita ningún hardware especial para manejar los controladores. La interfaz SPI o I2C también puede ser cambiada por bits, haciéndola portable a cualquier placa Arduino.

4) ¿Es mejor la pantalla TFT que la AMOLED?

Las AMOLED son más brillantes y más eficientes energéticamente que las pantallas TFT. Los ángulos de visión de las AMOLED son mejores en comparación con las TFT. 

Conclusión

Espero que haya sido divertido aprender el funcionamiento de la pantalla TFT y la configuración necesaria para poner en marcha tu propio proyecto de Arduino UNO + pantalla TFT.

If you have any suggestions to improve this article, I would be happy to hear about it.