O Display LCD Shield com Teclado é uma opção compacta para incluir uma interface homem-máquina nos seus projetos com Arduino. Basta encaixar o shield em uma placa Arduino para acrescentar ao seu projeto um display alfanumérico e cinco teclas. Conectores de expansão no shield dão acesso aos demais pinos do Arduino para ligação de sensores e atuadores.
Este shield pode ser usado em qualquer projeto onde você precise apresentar informações e receber comandos do operador. Alguns exemplos de projeto onde você pode usar este shield: temporizador/despertador, controle numérico de máquinas, controle de LEDs endereçáveis e até jogos simples.
Material Necessário
Descrição do Display LCD Shield com Teclado
O Hardware é composto de três blocos: Display, Teclado e Conectores de Expansão. Veja a imagem abaixo:
Display
O shield contém um display alfanumérico de 2 linhas de 16 colunas, com backlight azul. Ao ser encaixado, o shield necessariamente ocupa alguns pinos do Arduino que serão dedicados ao display. Segue as conexões para operação no modo 4 bits:
Sinal do Display | Pino do Arduino |
D4 | D4 |
D5 | D5 |
D6 | D6 |
D7 | D7 |
RS | D8 |
E | D9 |
R/W | GND (só escrita) |
Como esta é uma configuração padrão, devemos informar estes pinos na definição do objeto LiquidCrystal, como veremos no exemplo.
Além dos pinos citados acima, o pino D10 do Arduino controla o backlight do display. Quando o pino D10 estiver em nível alto o backlight estará aceso; quando estiver em nível baixo o backlight estará apagado.
O potenciômetro no canto superior esquerdo deve ser usado para acertar o contraste do display. Use uma chave de fenda para girar o parafuso até que os caracteres estejam com destaque desejado do fundo.
Botões
O shield possui cinco botões para interação com o operador. O shield possui as legendas Up, Down, Left, Right e Select, entretanto, você tem a liberdade para definir a ação de cada botão de acordo com a sua aplicação.
Como estratégia para economizar portas digitais, a leitura dos botões é feita através de parâmetros analógicos. Os cinco botões estão ligados à entrada analógica A0 através de resistores diferentes. Portanto o botão pressionado pode ser determinado através da tensão medida pelo ADC através de analogRead(A0), onde cada faixa de valor está associada a um botão conforme tabela abaixo:
Tecla Pressionada | Faixa de Valores |
Direita |
< 50 |
Cima |
>= 50 e < 150 |
Baixo |
>= 150 e < 300 |
Esquerda |
>= 300 e < 500 |
Select |
>= 500 e < 750 |
(nenhuma) |
>= 750 |
O shield possui também um botão de Reset, que funciona da mesma forma que o botão de reset do Arduino.
Conectores de Expansão
Quatro conectores permitem ligar outros dispositivos aos pinos não utilizados do Arduino.
Entretanto, os conectores não vem montados no shield, você pode soldar o que for mais apropriado ou mesmo soldar fios diretamente a eles.
Exemplo de uso do Display LCD Shield com Teclado
Neste exemplo, será mostrado no display qual tecla foi pressionada no teclado.
Para controle do display vamos usar a biblioteca padrão de LCD do Arduino (LiquidCrystal). A leitura das teclas é feito testando o valor retornado por analogRead(A0) com os vários limites que são armazenados em uma tabela.
#include <LiquidCrystal.h> // Define as conexões e cria o objeto para acesso const int rs = 8, en = 9, d4 = 4, d5 = 5, d6 = 6, d7 = 7; const int backLight = 10; LiquidCrystal lcd(rs, en, d4, d5, d6, d7); // Limites para detecção das teclas, em ordem crescente struct { int limite; char *nome; } teclas[] = { { 50, "Direita " }, { 150, "Cima " }, { 300, "Baixo " }, { 500, "Esquerda" }, { 750, "Select " }, { 1024, " " } // nenhuma tecla apertada }; // Iniciação void setup() { //Progama o pino de backlight como saída pinMode(backLight, OUTPUT); // Inicia o display e coloca uma mensagem lcd.begin(16, 2); lcd.print("SuperMaker"); // Acende o backlight digitalWrite(backLight, HIGH); } // Laço principal void loop() { static int teclaAnt = -1; // última tecla detectada // Lê a tensão no pino A0 int leitura = analogRead(A0); // Identifica a tecla apertada pela tensão lida int teclaNova; for (teclaNova = 0; ; teclaNova++) { if (leitura < teclas[teclaNova].limite) { break; } } // Atualiza a tela se pressionou uma nova tecla if (teclaNova != teclaAnt) { lcd.setCursor(0,1); lcd.print(teclas[teclaNova].nome); teclaAnt = teclaNova; } // Dá um tempo antes do próximo teste delay (100); }
Conclusão
O Display LCD Shield com Teclado é uma opção prática, simples e muito versátil de acrescentar uma interface de usuário ao seu projeto com Arduino.
Agora que você já conhece o Display LCD Shield com Teclado e sabe como usá-lo, que tal testar algum projeto com ele?
Gostou do artigo? Deixe seu comentário logo abaixo dizendo o que achou. Para mais artigos e tutorias de projetos acesse nosso blog.
Bacana.
Funciona a idéia para outros tipos deLCD.
Ex, o Sharp usado em aparelhos de fax com teclado numérico e de funções…
LCD :RUNTZ2034XH01,
TG5V-094V-O, GPM017A.
TECLADO:F3129XH-O4.
Cid,
Infelizmente não temos essa informação sobre o modelo descrito 🙁
Abraços e cuide-se com o COVID-19!
Diogo – Equipe MakerHero