A placa Arduino Esplora apresenta diversos recursos integrados que possibilitam variadas aplicações. Seu design lembra um joystick e motiva o desenvolvimento de jogos e interfaces homem máquina. Além dos sensores e saídas, é possível conectar um display TFT nos conectores headers disponíveis na placa, ampliando ainda mais as possibilidades de aplicações com ela.
Neste artigo vamos apresentar como desenvolver uma aplicação para leitura de sensores e exibição dos valores no display TFT.
Este display TFT foi adquirido em parceria com a loja FILIPEFLOP, fornecedora de placas e componentes eletrônicos no Brasil.
Display TFT para Arduino Esplora
O display TFT para Arduino Esplora possui 1,77″ com 160 x 128 pixels de resolução. Possui backlight e, no lado de trás da placa, um conector para micro SD. Com este display é possível criar imagens coloridas assim como armazenar imagens ou outras informações no micro SD para uso posterior. A figura 1 exibe o display TFT:

A interface com esse display é feita através de comunicação SPI. Você pode ver os detalhes desse display em seu datasheet. A figura 2 exibe os pinos utilizados para interface com o microcontrolador:
Conforme se pode observar na figura 2, o display funciona com uma tensão de 5V. A comunicação tanto com o display quanto com o micro SD é feita através da SPI, note a presença de pinos CS para cada um.
Para a utilização do display na Arduino Esplora é necessário a utilização da biblioteca TFT library e a biblioteca SPI.
Exemplo de uso do display TFT
No exemplo abaixo será apresentado como escrever texto no display, assim como fazer a leitura de alguns sensores presentes na placa e exibir seus valores na tela. Não há a necessidade de nenhum hardware adicional, apenas a Arduino Esplora e o display TFT, conforme exibido na figura 3:
O código a seguir exibe passo a passo como utilizar as bibliotecas para manipulação do display e a biblioteca para acesso de recursos da Esplora:
#include <Esplora.h> //biblioteca de funções da Esplora
#include <TFT.h> // Arduino LCD library
#include <SPI.h> //biblioteca para comunicação SPI com o display
char tempVetor[3]; //vetor auxiliar para exibir temperatura
char sliderVetor[5]; //vetor auxiliar para exibir valor do slider
char lightVetor[5]; //vetor auxiliar para exibir valor do sensor de luz
char xVetor[5]; //vetor auxiliar para exibir valor do eixo x
char yVetor[5]; //vetor auxiliar para exibir valor do eixo y
char zVetor[5]; //vetor auxiliar para exibir valor do eixo z
void setup() {
EsploraTFT.begin(); //inicia display
EsploraTFT.background(0,0,0);//coloca fundo com a cor: PRETO
EsploraTFT.stroke(255, 0, 0); //define cor da escrita: AZUL
EsploraTFT.rect(0, 0, 160, 128); //desenha um retanguno nas extremidade do display
EsploraTFT.stroke(0, 255, 255); // escolhe a cor da escrita: Laranja
EsploraTFT.setTextSize(2); //define o tamnho do texto
EsploraTFT.text("EMBARCADOS",20, 10); //escreve "EMBARCADOS" no display
EsploraTFT.stroke(255,255, 255); // escolhe a cor da escrita: BRANCA
EsploraTFT.setTextSize(1); //define tamanho da escrita
EsploraTFT.text("TEMP: C",20, 35); //escreve "TEMP: C" no display
EsploraTFT.circle(65, 35, 1); //desenha simbolo de graus
EsploraTFT.text("POT :",20, 50); //escreve "POT :" no display
EsploraTFT.text("LUZ :",20, 65); //escreve "LUZ :" no display
EsploraTFT.text("X :",20, 80); //escreve "X :" no display
EsploraTFT.text("Y :",20, 95); //escreve "Y :" no display
EsploraTFT.text("Z :",20, 110); //escreve "Z :" no display
}
void loop() {
EsploraTFT.stroke(255, 255, 255); //escolhe a cor da escrita: BRANCA
String temperatura = String(Esplora.readTemperature(DEGREES_C)); //le a temperatura em ºC
temperatura.toCharArray(tempVetor, 3); //separa string em caracteres
EsploraTFT.text(tempVetor, 50, 35); //atualiza display
String slider = String(Esplora.readSlider()); //le slider
slider.toCharArray(sliderVetor, 5); //separa string em caracteres
EsploraTFT.text(sliderVetor, 50, 50); //atualiza display
String light = String(Esplora.readLightSensor()); //le sensor de temperatura
light.toCharArray(lightVetor, 5); //separa string em caracteres
EsploraTFT.text(lightVetor, 50, 65); //atualiza display
String x = String(Esplora.readAccelerometer(X_AXIS)); //le eixo x
x.toCharArray(xVetor, 5); //separa string em caracteres
EsploraTFT.text(xVetor, 50, 80); //atualiza display
String y = String(Esplora.readAccelerometer(Y_AXIS)); //le eixo y
y.toCharArray(yVetor, 5); //separa string em caracteres
EsploraTFT.text(yVetor, 50, 95); //atualiza display
String z = String(Esplora.readAccelerometer(Z_AXIS)); //le eixo y
z.toCharArray(zVetor, 5); //separa string em caracteres
EsploraTFT.text(zVetor, 50, 110); //atualiza display
delay(500); //aguarda 500ms
EsploraTFT.stroke(0, 0, 0); //escolhe a cor da escrita: PRETA
//apaga escritas no display para não sobreescrever
EsploraTFT.text(tempVetor, 50, 35);
EsploraTFT.text(sliderVetor, 50, 50);
EsploraTFT.text(lightVetor, 50, 65);
EsploraTFT.text(xVetor, 50, 80);
EsploraTFT.text(yVetor, 50, 95);
EsploraTFT.text(zVetor, 50, 110);
}
Conforme os comentários no código apresentado, com o uso destas bibliotecas você tem a facilidade de manipulação de textos e formas no display, escolhendo a cor de fundo, cor de escrita e tamanho de letras. Note que para não sobrescrever a tela é necessário apagar os últimos caracteres antes da atualização dos valores.
E você leitor, já utilizou esse display? Conte suas experiências.






Olá Fábio muito bom o seu exemplo do display TFT com o arduino esplora, e acompanhado o seu exemplo eu fiz umas mudanças reescrevendo o sketch para um arduino nano.
Mas estou com dificuldades na seleção de cores não consegui entender como misturar as cores pois o verde, azul e vermelho e tramguilo mas o resto da palheta de cores não entendi.
voce pode me dar uma dica
Grato Silvio Cavalcante
Olá Silvio,
Que bacana que está portando para o nano.
Para criar cores vc dever combinar o RGB, nas funções: EsploraTFT.background(0,0,0);
EsploraTFT.stroke(0, 0, 0);
No caso dessas funções a sequencia de cores está da seguinte forma: BGR.
Você pode ver a combinação de RGB para gerar outras cores nesse site: https://erikasarti.net/html/tabela-cores/
Abraços
Fábio, obrigado pelo link
abraços