• Autor de la entrada:
  • Categoría de la entrada:Arduino

Cuando se trata de crear una interfaz humano máquina podemos optar por muchas técnicas en función de cual sea el objetivo que se persigue. Una de las más extendidas a día de hoy es el uso de TFT bien sea táctil o no. Vamos a repasar los métodos que tenemos a nuestra disposición en la librería TFT para el uso de TFT en Arduino.



Librerías para pantallas TFT en Arduino

Lo primero que debemos tener en cuenta es que necesitamos varias librerías para poder usar la pantalla TFT en Arduino. La primera es «TFT» y la segunda es «SPI». Por suerte, ambas están incluidas entre las librerías que vienen instaladas con el IDE de Arduino. Si tienes instalado el IDE, ya tienes las librerías instaladas.

La librería SPI nos permitirá comunicarnos con la pantalla, ya que la mayoría de estas TFT usan SPI (Serial Peripheral Interface). Esta comunicación serie está compuesta por líneas de datos, de reloj, de selección y alguna otra auxiliar.

La librería TFT es la encargada de manipular la pantalla: dibujar, escribir y cargar imágenes en ella, en resumen casi todo lo que necesitamos para realizar el uso de TFT.

Uso de TFT para crear menu interactivo
TFT menú interactivo

Creación del objeto e configuración de pines

Lo primero que debemos hacer, después de incluir las librerías y en todos los casos, es crear el objeto de la TFT e indicarle al constructor que pines usaremos para las líneas especiales de la pantalla y que no son las del SPI.

Debemos configurar los pines CS (chip select), RST (reset) y DC.

Puedes aprender un poco más sobre el uso de TFT y su conexión en este otro artículo de iniciación a su uso

Un ejemplo clásico de configuración es:

#define CS   10
#define DC   9
#define RESET  8

Por otro debemos crear el objeto y pasar al constructor los pines anteriores

TFT myScreen = TFT(CS, DC, RESET);

Inicialización de la pantalla TFT

En el setup debemos inicializar la pantalla, lo haremos una sola vez con:

pantalla.begin();

Puede ser que debamos cambiar la orientación de la pantalla debido a que la tengamos en vertical, para ello usamos el siguiente método. 90 es el ángulo de giro.

pantalla.setRotation(90);


Guía uso PANTALLA TFT en Arduino

Métodos para el uso de TFT

pantalla.background(rojo, verde, azul); 

Elimina todo lo que haya en la pantalla y pone de fondo el color que le indiquemos como combinación RGB.

Rojo, verde y azul con parámetros que indican el color del fondo. Son de tipo entero y su valor puede ir desde 0 a 255.

pantalla.stroke(rojo, verde, azul);

Se usa para indicar el color del borde de el siguiente objeto. Por ejemplo para indicar el color del borde de un rectángulo, primero se llama a stroke y luego se dibuja el rectángulo.

Rojo, verde y azul con parámetros que indican el color de la línea. Son de tipo entero y su valor puede ir desde 0 a 255.

pantalla.noStroke();

Todas las formas que se dibujen después de noStroke, no tendrán línea de borde exterior.

pantalla.fill(rojo, verde, azul);

Se usa para seleccionar el color de relleno de los objetos. Por ejemplo para seleccionar el color de relleno de un círculo, primero se llama a fill y luego se dibuja el círculo.

Rojo, verde y azul con parámetros que indican el color de relleno. Son de tipo entero y su valor puede ir desde 0 a 255.

pantalla.noFill();

Todas las formas que se dibujen después de llamar a noFill no tendrán relleno

pantalla.text(texto, xPos, yPos);

Se usa para escribir texto

– texto: El texto a mostrar

– xPos: La posición en el eje X para empezar a escribir

– yPos: La posición en el eje Y para empezar a escribir

pantalla.setTextSize(size);

Fija el tamaño del texto que se escriba después de llamar a setTextSize()

– Size: Tipo entero comprendido entre 1 y 5. (1 = 10 pixeles; 2 = 20 pixeles; etc)



pantalla.point(xPos, yPos);

Dibuja un punto en la posición indicada

– xPos: Posición en eje X

– yPos: Posición en eje Y

pantalla.line(xStart, yStart, xEnd, yEnd);

Dibuja una línea entre los puntos indicados

– xStart: Posición en eje X de inicio

– yStart: Posición en eje Y de inicio

– xEnd: Posición en eje X de fin

– yEnd: Posición en eje Y de fin

pantalla.rect(xStart, yStart, width, height);

Dibuja un rectángulo

– xStart: Posición en eje X de inicio

– yStart: Posición en eje Y de inicio

– width: Ancho del rectángulo

– height: Altura del rectángulo

pantalla.circle(xPos, yPos, radius);

Dibuja un círculo

– xPos: Posición del centro del circulo en el eje X

– yPos: Posición del centro del círculo en el eje Y

– radius: radio del círculo

pantalla.width();

Devuelve un valor tipo int que indica el ancho en píxeles de la pantalla.

pantalla.height();

Devuelve un valor tipo int que indica el alto en píxeles de la pantalla.

pantalla.loadImage(name);

Carga una imagen desde la tarjeta SD, debe haberse importado la librería SD y haberse inicializado la tarjeta SD.

– name: El nombre de la imagen que se busca en la raíz de la tarjeta SD.

Devuelve un objeto tipo PImage;

pantalla.image(image, xPos, yPos);

Dibuja una imagen en la pantalla

– Image: Objeto de tipo imagen (creado antes del setup y cargado con loadImage();)

– xPos: Posición en el eje X

-yPos: Posición en el eje Y



Tienes más información en la web de arduino sobre el uso de la librería.

Enrique Gómez

Ingeniero Electrónico Industrial y Automático, amante de la comunicación audiovisual y de la divulgación ingenieril y científica. Friki de Star Wars, cuenta más de lo que parece. Puedes saber más sobre mi y sobre mis trabajos en www.enriquegomez.me