Interface Arduino com LCD e Teclado 4x4
Interface Arduino com LCD e Teclado 4x4
No design de sistemas embarcados, o teclado matricial (4x4, 4x3, 3x3 ou 5x5) é usado para teclas
nos inputs do usuário. Da mesma forma, o display LCD de caracteres [16x2, 16x4, 20x2 ou 20x4 LCDs] é
usado para indicar o status / parâmetros do sistema. Este intractável é sobre a interface
LCD 16×2 e teclado matricial 4x4 com microcontrolador Arduino.
Peças e componentes
Passo 1: Esquema
O 16x2 é um tipo de LCD muito comum, com duas linhas, e cada linha exibe 16
caracteres de matriz de pontos de 5x7 ou 5x8.
O LCD está disponível em um pacote de 16 pinos. Ele consiste em retroiluminação e contraste.
função de ajuste e cada matriz de pontos tem uma resolução de 5×8 pontos.
O display LCD 16x2 está conectado ao Arduino (A0, A1, A2, A3, A4, A5) analógico
Pinos IO, onde esses pinos são configurados como digitais de entrada / saída, onde o LCD opera em
modo de dados de 4 bits.
Se o display não estiver visível, ajuste o potenciômetro de Contraste (1K) para torná-lo visível.
O teclado matricial é organizado por interruptores de botão pressionados em linhas e colunas.
Passo 2: Software
A biblioteca LiquidCrystal e Keypad do Arduino é usada para exibir o status
e detectando o pressionar de tecla.
O LCD exibe o "TESTE DO LCD DO TECLADO" como tela de boas-vindas na primeira linha
Número de segundos desde o início "SEC= 123" é exibido na segunda linha coluna
um.
A chave detectada é exibida na linha (“KEY= 5”) segunda linha coluna 9 em diante.
Program :
A conexão do circuito Arduino para o LCD:
* Pino RS do LCD para o pino analógico A0
Pino de Ativação do LCD para o pino analógico A1
{'7','8','9','/'},
{'4','5','6','X'},
{'1','2','3','-'},
{'#','0','=','+'}
};
// Conecte o teclado ROW0, ROW1, ROW2 e ROW3 a
Pinos do Arduino.
byte rowPins[ROWS] = { 5, 4, 3, 2 };
// Conecte o teclado COL0, COL1, COL2 e COL3 a
Pinos do Arduino.
byte colPins[COLS] = { 6, 7, 8, 9 };
Criar o Teclado
Teclado kpd = Teclado( fazerMapaDeTeclas(chaves), pinosLinha,
[Link](16, 2);
// Impressão
uma mensagem para o LCD.
[Link](0, 1);
// imprimir
o número de segundos desde o reset:
[Link]("SEC= ");
[Link](millis() / 1000);
// Verificar
para uma chave válida
se(chave)
{
// conjunto
[Link](9, 1);
[Link]("CHAVE= ");
[Link](chave);
}
}
Conclusion