Guia para a tela 1.8 TFT com Arduino

Tempo de leitura: 6 minutes

Guia para a tela 1.8 TFT com Arduino

Neste guia, mostraremos como você pode usar a tela 1.8 TFT com o Arduino. Você aprenderá como conectar a tela, escrever texto, desenhar formas e exibir imagens na tela.

Apresentando a tela 1.8 TFT

O 1.8 TFT é um display colorido com 128 x 160 pixels coloridos. O monitor pode carregar imagens de um cartão SD – ele possui um slot para cartão SD na parte traseira. A figura a seguir mostra a tela frontal e traseira.
Guia-De-Configuração-Programação-Arduino-LCD-1
Este módulo usa comunicação SPI – veja a fiação abaixo. Para controlar a exibição, usaremos a biblioteca TFT, que já está incluída no Arduino IDE 1.8.1.

 

Ligação do pino

A tabela abaixo mostra a ligação de 1,8 TFT do Arduino UNO.
Display 1.8 TFT Ligação para o Arduino Uno
LED 3.3V
SCK 13
SDA 11
A0 ou DC 9
RESET 8
CS 10
GND GND
VCC 5V
Nota: placas diferentes do Arduino têm pinos SPI diferentes. Se você estiver usando outra placa Arduino, consulte a documentação oficial do Arduino.

Inicializando a exibição

O visor TFT se comunica com o Arduino via comunicação SPI, portanto, você precisa incluir a biblioteca SPI no seu código. Também usamos a biblioteca TFT para escrever e desenhar na tela.
#include <TFT.h>  
#include <SPI.h>
Então, você precisa definir os pinos CS, A0 (ou DC) e RST:
#define cs 10
#define dc 9
#define rst 8
Crie uma instância da biblioteca chamada TFTscreen:
TFT TFTscreen = TFT(cs, dc, rst);
Finalmente, no setup(), você precisa inicializar a biblioteca:
TFTscreen.begin();

Exibir texto

Para escrever texto na tela, você pode personalizar a cor de fundo da tela, tamanho da fonte e cor.
Para definir a cor de fundo, use:
TFTscreen.background(r, g, b);
Em que, r, g e b são os valores RGB para uma determinada cor. Para escolher a cor da fonte:
TFTscreen.stroke(r, g, b);
Para definir o tamanho da fonte:
TFTscreen.setTextSize(2);
Você pode aumentar ou diminuir o número fornecido como argumento, para aumentar ou diminuir o tamanho da fonte.
Por fim, para desenhar texto na tela, use a seguinte linha:
TFTscreen.text("Hello, World!", x, y);
No qual “Olá, mundo!” É o texto que você deseja exibir e a coordenada (x, y) é o local em que você deseja iniciar o texto na tela.

Código

O exemplo a seguir exibe “Olá, mundo!” No meio da tela e altera a cor da fonte a cada 200 milissegundos.
Copie o código a seguir para o seu Arduino IDE e faça o upload para sua placa Arduino.
/*********
  Programa : blog arduino
*********/

// incluem bibliotecas TFT e SPI
#include <TFT.h>  
#include <SPI.h>

// definição de pino para Arduino UNO
#define cs   10
#define dc   9
#define rst  8


// crie uma instância da biblioteca
TFT TFTscreen = TFT(cs, dc, rst);

void setup() {

  //inicializar a biblioteca
  TFTscreen.begin();

  //limpe a tela com um fundo preto
  TFTscreen.background(0, 0, 0);
  //defina o tamanho do texto
  TFTscreen.setTextSize(2);
}

void loop() {

  //gerar uma cor aleatória
  int redRandom = random(0, 255);
  int greenRandom = random (0, 255);
  int blueRandom = random (0, 255);
  
  //definir uma cor de fonte aleatória
  TFTscreen.stroke(redRandom, greenRandom, blueRandom);
  
  //print Olá, mundo! no meio da tela
  TFTscreen.text("Ola, mundo!", 6, 57);
  
  // aguarde 200 milissegundos até mudar para a próxima cor
  delay(200);
}
Aqui está o seu texto “Olá, mundo!” Na tela 1.8 TFT. (Obs: o display não aceita acentuação – Tire antes do exemplo)
Guia-De-Configuração-Programação-Arduino-LCD-1
Obs: Este meu display, apresenta um pequeno erro, de fabrica isso não acontece num funcionando, normal. (um ‘.’ abaixo do ‘u’)

Formas de exibição

A biblioteca TFT fornece funções úteis para desenhar formas na tela:
  • TFTscreen.point(x, y): exibir um ponto na coordenada (x, y)
  • TFTscreen.line(xStart, yStart, xEnd, yEnd): desenha uma linha que começa em (xStart, yStart) e termina em (xEnd, yEnd)
  • TFTscreen.rect(xStart, yStart, width, height): desenha um retângulo com o canto superior esquerdo em (xStart, yStart) com a largura e a altura definidas
  • TFTscreen.circle(x, y, radius): desenha um círculo com centro em (x, y) com o raio especificado

Código

O exemplo a seguir exibe várias formas. Sempre que o código passa pelo loop, as formas mudam de cor.
Copie o código a seguir para o seu Arduino IDE e faça o upload para sua placa Arduino.
/*********
  Programa : blog arduino
*********/

// incluem bibliotecas TFT e SPI
#include <TFT.h>  
#include <SPI.h>

// definição de pino para Arduino UNO
#define cs   10
#define dc   9
#define rst  8


// crie uma instância da biblioteca
TFT TFTscreen = TFT(cs, dc, rst);

void setup() {

  //inicializar a biblioteca
  TFTscreen.begin();

  //limpe a tela com um fundo preto
  TFTscreen.background(0, 0, 0);
}

void loop() {

  //gerar uma cor aleatória
  int redRandom = random(0, 255);
  int greenRandom = random (0, 255);
  int blueRandom = random (0, 255);
  
  //definir uma cor de fonte aleatória
  TFTscreen.stroke(redRandom, greenRandom, blueRandom);

  // acende um único ponto
  TFTscreen.point(80,64);
  // aguarde 200 milissegundos até mudar para a próxima figura
  delay(500);

  // Desenhe uma linha
  TFTscreen.line(0,64,160,64);
  delay(500);

  // Desenha um quadrado
  TFTscreen.rect(50,34,60,60);
  delay(500);
    
  // Desenhar um círculo
  TFTscreen.circle(80,64,30);
  delay(500);

  // Apaga todas as figuras
  TFTscreen.background(0,0,0);
}
Aqui estão as formas na tela
Guia-De-Configuração-Programação-Arduino-LCD-1
Obs: Este meu display, apresenta um pequeno erro, de fabrica isso não acontece num funcionando, normal veja (um ‘.’ abaixo do ‘u’), imagem tirada no celular

Exibir imagens

A tela 1.8 TFT pode carregar imagens do cartão SD. Para ler no cartão SD, use a biblioteca SD, já incluída no software Arduino IDE. Siga as próximas etapas para exibir uma imagem no visor:
1) Pinos do conector de solda para o cartão SD. Existem quatro pinos opostos aos pinos da tela, como mostra a figura abaixo.
Guia-De-Configuração-Programação-Arduino-LCD-1
2) A tela pode carregar imagens maiores ou menores que o tamanho da tela (160×128 px), mas para obter melhores resultados, edite o tamanho da imagem para 160×128 px.
3) A imagem deve estar no formato .bmp. Para fazer isso, você pode usar um software de edição de fotos e salvar a imagem no formato .bmp.
4) Copie a imagem no cartão SD e insira-a no slot para cartão SD na parte traseira do visor.
5) Conecte os pinos do cartão SD ao Arduino, seguindo a tabela abaixo:
Cartão SD no Visor TFT Ligação para o Arduino Uno
CS 4
MOSI 11
MISO 12
SCK 13
Tanto a tela quanto o cartão SD funcionam com a comunicação SPI, para que você tenha pinos no Arduino com duas conexões.
6) No IDE do Arduino, vá para File->Examples->TFT->Arduino->TFTBitmaLogo.
7) Edite o código, para que ele procure sua imagem. Substitua “arduino.bmp” pelo nome da sua imagem:
//agora que o cartão SD pode ser acessado, tente carregar o arquivo de imagem
logo = TFTscreen.loadImage("arduino.bmp");
8) Faça o upload do código para o seu Arduino.
Nota: algumas pessoas encontram problemas com essa tela ao tentar ler a partir do cartão SD. Não sabemos por que isso acontece. Na verdade, testamos algumas vezes e funcionou bem e, quando estávamos prestes a gravar para mostrar o resultado final, a tela não reconheceu mais o cartão SD – não temos certeza se é um problema com o suporte do cartão SD que não estabelece uma conexão adequada com o cartão SD. No entanto, temos certeza de que essas instruções funcionam, porque as testamos.

Empacotando

Neste guia, mostramos como usar a tela 1.8 TFT com o Arduino: exibir texto, desenhar formas e exibir imagens. Você pode adicionar facilmente uma interface visual agradável aos seus projetos usando essa exibição.
Você tem algum projeto com a tela 1.8 TFT? Deixe-nos saber na seção de comentários abaixo.

Para facilidade, no link ao lado com o arquivo do exemplo para teste (menos com o SD Card) – (Link)

Visits: 3 Visits: 1199318