Este tutorial faz parte de: Teclados
Todos os vídeos sobre teclados numéricos estão listados aqui.
1602 LCD Keypad Shield: Código Básico
Neste tutorial, vamos explorar como programar e utilizar um 1602 LCD Keypad Shield com um Arduino. Este shield conta com um display de 16 caracteres por 2 linhas e um teclado que permite várias funcionalidades de entrada. Ao final deste guia, você será capaz de exibir mensagens e responder de forma eficaz aos pressionamentos de tecla.
O foco será criar um programa simples que detecte pressionamentos de tecla e exiba as mensagens correspondentes no LCD. Você pode acompanhar o vídeo para uma demonstração visual (no vídeo em 03:00).
Hardware Explicado
O componente principal desta montagem é o 1602 LCD Keypad Shield. Este shield conecta-se diretamente à placa Arduino e fornece tanto um display quanto um teclado para interação do usuário. O LCD pode exibir mensagens de texto, enquanto o teclado permite que os usuários selecionem opções por meio de vários botões.
O teclado funciona usando uma entrada analógica, que o Arduino lê para determinar qual botão está pressionado. Cada botão tem uma resistência única, permitindo que o microcontrolador identifique o botão com base no valor analógico recebido do sensor.
Detalhes da ficha técnica
| Fabricante | Genérico |
|---|---|
| Número da peça | Shield com LCD 1602 e teclado |
| Tensão lógica/E/S | 5 V |
| Tensão de alimentação | 5 V |
| Corrente de saída (por canal) | 2 mA |
| Corrente de pico (por canal) | 20 mA |
| Orientações sobre a frequência PWM | Não aplicável |
| Limiares da lógica de entrada | 0.3 Vccaté 0.7 Vcc |
| Queda de tensão / RDS(ligado)/ saturação | Não aplicável |
| Limites térmicos | 70 °C |
| Pacote | Formato do escudo |
| Notas / variantes | Compatível com Arduino Uno |
- Certifique-se de que o LCD esteja alimentado com 5 V para evitar danos.
- Use resistores pull-up adequados para o teclado, se necessário.
- Aplique debounce às pressões de tecla no código para evitar múltiplos acionamentos.
- Monitore os limites de corrente para evitar o superaquecimento.
- Teste as conexões antes de ligar o circuito.
Instruções de fiação
Para conectar o 1602 LCD Keypad Shield, basta encaixá-lo diretamente na placa Arduino. O shield foi projetado para alinhar-se com a configuração de pinos do Arduino Uno. Certifique-se de que os pinos estejam bem conectados.
Os botões do teclado conectam-se ao pino de entrada analógica A0. As linhas de dados do LCD são gerenciadas internamente pela biblioteca utilizada, então você não precisará conectá-las separadamente. O shield também usa alguns pinos digitais para controlar a retroiluminação e outras funcionalidades, que são pré-definidos pela biblioteca. Se você seguir a documentação da biblioteca, verá que ela normalmente gerencia essas conexões automaticamente.
Exemplos de Código e Tutorial
No código, primeiro incluímos a biblioteca necessária para controlar o LCD:
#include <LCD4Bit_mod.h>Esta biblioteca facilita a comunicação com o LCD 1602. Em seguida, criamos uma instância do objeto LCD com o número de linhas especificado.
Em seguida, inicializamos o LCD emsetup()função:
lcd.init();Esta linha prepara o LCD para uso. Após a inicialização, podemos exibir uma mensagem de teste usando olcd.printIn()função.
No loop principal, lemos a entrada analógica para detectar pressionamentos de tecla:
adc_key_in = analogRead(0);Esta linha lê o valor do teclado. O valor ajuda a determinar qual tecla foi pressionada usando oget_key()função que converte o valor do ADC em um número de tecla.
Demonstração / O que esperar
Ao executar o código, pressionar os botões exibirá mensagens correspondentes à tecla pressionada no LCD. Por exemplo, ao pressionar a tecla direita será exibido "Right Key OK" no display (no vídeo em 05:30). Se a detecção das teclas não estiver funcionando corretamente, verifique a fiação e certifique-se de que as bibliotecas corretas estejam incluídas no seu Arduino IDE.
Marcas de tempo do vídeo
- 00:00- Introdução
- 03:00- Visão geral do código
- 05:30- Demonstração de pressionamento de tecla
Este tutorial é parte de: Teclados
- Usando um teclado 4x3 com Arduino
- Código Arduino e vídeo para um teclado de quatro teclas
- Código e vídeo do Arduino: Teclado matricial preto 4x4
- Build a Simple Electronic Lock with Keypad and LCD Using Arduino
- Controlling an 8-channel relay with a 4x3 keypad
- Como usar o Soft Keypad 4x4 com Arduino
- How to Use a 5x4 20-Key Keypad with Arduino to Detect Strings
- Lesson 67: Controlling an 8-Channel Relay with a Keypad Using Arduino
/*
* Text:
*/
#include <LCD4Bit_mod.h>
// Crie um objeto para controlar um LCD.
// Número de linhas na tela = 1
LCD4Bit_mod lcd = LCD4Bit_mod(2);
// Mensagens principais
char msgs[5][15] = {"Right Key OK ",
"Up Key OK ",
"Down Key OK ",
"Left Key OK ",
"Select Key OK" };
int adc_key_val[5] ={30, 150, 360, 535, 760 };
int NUM_KEYS = 5;
int adc_key_in;
int key=-1;
int oldkey=-1;
void setup() {
pinMode(13, OUTPUT); // Usaremos o LED de depuração para emitir um sinal de batimento cardíaco.
lcd.init();
// Opcionalmente, agora configure as configurações de exibição específicas do nosso aplicativo, sobrescrevendo o que o LCD fez em lcd.init()
// lcd.commandWrite(0x0F);// Cursor ligado, display ligado, piscar ligado. (Aterrorizante!)
lcd.clear();
lcd.printIn("Robojax.com Testing");
}
void loop() {
adc_key_in = analogRead(0); // Leia o valor do sensor
digitalWrite(13, HIGH);
key = get_key(adc_key_in); // Converter em pressão de tecla
if (key != oldkey) // Se a tecla pressionada for detectada
{
delay(50); // Aguarde o tempo de debounce
adc_key_in = analogRead(0); // Leia o valor do sensor
key = get_key(adc_key_in); // Converter em pressão de tecla
if (key != oldkey)
{
oldkey = key;
if (key >=0){
lcd.cursorTo(2, 0); // Linha = 2, x = 0
lcd.printIn(msgs[key]);
}
}
}
// delay(1000);
digitalWrite(13, LOW);
}
// Converter o valor do ADC para o número da chave
int get_key(unsigned int input)
{
int k;
for (k = 0; k < NUM_KEYS; k++)
{
if (input < adc_key_val[k])
{
return k;
}
}
if (k >= NUM_KEYS)
k = -1; // Nenhuma tecla válida pressionada
return k;
}
Recursos e referências
-
ExternoBiblioteca Arduion LCD4Bit_mod (getHub)github.com
Arquivos📁
Nenhum arquivo disponível.