Funcionamento do Display LCD TFT no Arduino MEGA

676 views

É possível fazer projetos com Arduino utilizando Display LCD TFT !? Sim! E para este post, vamos conectar o Display LCD TFT em um Arduino MEGA.

Display LCD TFT 2.4" Touchscreen Shield para Arduino
Display LCD TFT 2.4″ Touchscreen Shield para Arduino

O Display LCD TFT é sensível ao toque e tem uma dimensão de 2.4 polegadas e resolução de 240 x 320 pixels.

Conectando o Display LCD TFT ao Arduino MEGA

Conectando o Display LCD TFT 2.4 no Arduino Mega
Conectando o Display LCD TFT 2.4 no Arduino Mega

 

Conexão Display LCD TFT e Arduino Mega
Conexão Display LCD TFT e Arduino Mega

 

 

Display LCD TFT 2.4 não Arduino Mega
Conexão Display LCD TFT e Arduino Mega

Programa

Neste programa vamos criar uma interface gráfica, com um botão para acender e apagar uma lâmpada. Também será escrito no display touch screen ‘’BAU DA ELETRONICA’’.

Inicialmente teremos o botão amarelo escrito ‘’ACENDE’’ em preto. Quando este botão for pressionado, o botão mudará de cor para preto e a palavra mudará para ‘’APAGA’’ escrito em amarelo.

Explicando o Programa

Primeiramente o programa apresenta suas bibliotecas, logo em seguida foram declarados os pinos analógicos e digitais em que foram ligados o Arduino ao Display LCD TFT. Conforme podemos ver abaixo (podemos ver essa ligação através da tabela X):

Foram determinados valores máximos e mínimos dos eixos X e Y:

Podemos ver no trecho acima que foi criado um objeto TouchScreen TouchScreen ts = TouchScreen(XP, YP, XM, YM, 100). Foram criadas também as opções de cores como podemos ver abaixo:

Em seguida foi criada a variável para armazenar o estado do botão utilizado no sistema bool valor_botao1 = 0

O trecho acima foi configurado para enviar a mensagem ‘’TFT Test’’ para o monitor serial, com sua configuração de taxa de comunicação serial Serial.begin(9600) e a mensagem correspondente Serial.println(“TFT Test”)

O programa inicia o controlador 9325 do display touch tft.begin(0x9325) e logo em seguida preenche a tela do display com a cor amarela tft.fillScreen(YELLOW) e rotaciona o display para a posição 1 tft.setRotation(1).

Logo em seguida o retângulo onde estará escrito ‘’BAU DA ELETRONICA’’ é desenhado com a função tft.drawRoundRect(5,15, 312,50, 5, BLACK),os valores correspondem a coluna inicial, linha inicial, comprimento, altura e cor.
O texto foi escrito respectivamente com as definições de cor, tamanho e posição, como podemos ver nas funções abaixo:

Acima foi desenhado o contorno do botão ACENDE com a sua coluna inicial, linha inicial, comprimento, altura e cor e o seu nome com a cor, posição e texto.

Acima podemos ver a função que detecta o ponto em que a tela foi tocada e envia para a variável TSPoint p  TSPoint p = ts.getPoint(),as variáveis XM, YP, YM e XP foram definidas como saída, foram enviados níveis lógicos altos e baixos para estes pinos:

Verifica se houve pressão suficiente na tela para ser considerado como um toque if (p.z > ts.pressureThreshhold),em seguida o ponto tocado é mapeado nos eixos x e y e enviado para p.x e p.y  p.x = tft.width() – (map(p.x, TS_MINX, TS_MAXX, tft.width(), 0)) e  p.y = tft.height() – (map(p.y, TS_MINY, TS_MAXY, tft.height(), 0)) Se a área do botão for tocada entre os limites das coordenadas selecionadas do eixo y if (p.y > 90 && p.y < 135 ) as coordenadas são apresentadas no monitor serial:

Se a área do botão for tocada entre os limites das coordenadas do eixo x if (p.x > 95 && p.x < 232)
e se o valor da variável do botão for igual a zero (inicialmente sim), a área deste botão é preenchida na cor preta e em seguida vai para a sub rotina mostra_apaga(106,120),que irá mostrar a palavra APAGA em amarelo. Logo em seguida é enviado nível lógico 1 para a variável botão valor_botao1 = !valor_botao1

Quando o botão ACENDE for pressionado, o botão ficará preto com a palavra APAGA em amarelo. Como a variável botão estará com valor igual a 1 a função else executará a sua função da seguinte forma:

A área do botão será preenchida de amarelo e logo em seguida vai para a sub rotina  mostra_acende(106,120)que irá mostrar a palavra ACENDE em preto. Logo em seguida será enviado nível lógico 0 para a variável do botão valor_botao1 = !valor_botao1

As sub-rotinas void mostra_acende(int x, int y)e void mostra_apaga(int x, int y) mostram a palavra acende e apaga nas suas respectivas coordenadas mostra_apaga(106,120) e mostra_acende(106,120).

Controlando Lâmpada através da Interface

Circuito Display LCD TFT com Arduino Mega
Circuito Display LCD TFT com Arduino Mega

Materiais Utilizados:
Display LCD TFT 2.4″
Arduino MEGA
Módulo relé 5V
Jumpers (macho – fêmea)

 

Programa

Explicando o Programa

A diferença deste programa para o anterior é que foi acrescentado o comando pinMode (52,OUTPUT)que vai definir o pino 52 como saída. Este pino está ligado no pino IN do módulo relé de 5V (para saber mais sobre o módulo relé acesse aqui o post: Sistema de Trava Elétrica com RFID e Arduino). Também temos o comando digitalWrite (52,HIGH) que vai manter inicialmente a saída na posição normal fechado, mantendo a lâmpada apagada. Veja abaixo este trecho do programa:

Outra diferença deste programa ao anterior, é que ao pressionarmos o botão ACENDE, será enviado nível lógico baixo para o pino 52 digitalWrite (52,LOW) e consequentemente para o pino IN do módulo relé. Mudando o contato de saída de normal fechado para normal aberto, a lâmpada se acenderá, como podemos ver a seguir:

Quando pressionarmos novamente o botão (APAGA), o pino 52 enviará nível lógico alto para o pino IN do relé digitalWrite (52,HIGH).

Desta forma, mudando o contato de normal aberto para normal fechado, que por sua vez apagará a lâmpada.

Para dúvidas e sugestões, deixe um comentário abaixo!

Envie seu projeto para nós usando a #ProjetoComBau e visite nossa loja: www.baudaeletronica.com.br

(Visited 395 times, 1 visits today)