Figura 01 - Teclado Matricial 4x4 |
O Teclado Matricial 4x4 foi desenvolvido para facilitar a entrada de dados em projetos microcontrolados. Este teclado possui 16 teclas, onde 10 delas são números, 4 são letras e 2 são caracteres especiais. Com ele podemos criar uma infinidade de projetos, tais como criar controles de acesso, teclados musicais, entre outros.
Nesse tutorial iremos montar um simples projeto, assim aprendendo o funcionamento básico do teclado, de imprimir as teclas pressionadas no monitor serial.
O teclado possui 16 teclas, que estão dispostas em 4 linhas por 4 colunas, e ele possui 8 pinos para ligação. Embaixo de cada tecla há um interruptor de membrana. Cada interruptor em uma linha é conectado aos outros interruptores da mesma linha por um traço condutor sob o bloco, e da mesma forma são conectadas às colunas, onde todos os botões da coluna também estão conectados. Ou seja, todos os botões do teclado estão conectados a uma linha e a uma coluna, por isso que é chamado de teclado matricial. A imagem abaixo ilustra o circuito do teclado.
Figura 02 - Funcionamento do Teclado Matricial 4x4 |
Para identificar qual botão foi pressionado, a placa Arduino executa quatro passos. O primeiro é configurar todas as colunas da matriz como entradas em nível lógico alto (resistor de pull-up interno ativado), e todas as linhas como saídas em nível lógico baixo. Deste modo, caso o botão "5" seja pressionado, a coluna "2" passará para o nível lógico baixo, completando o segundo passo. Já no terceiro passo, o Arduino identifica a linha que foi pressionada invertendo o nível lógico anterior, ou seja, configurando as colunas para nível lógico baixo, e mantendo as linhas em nível lógico alto. Desta forma, a linha "2", em nosso exemplo, passará para o nível lógico baixo, e o microcontrolador identificará que o botão pressionado está na linha "2" e coluna "2", completando, portanto, o quarto e último passo, como na imagem abaixo.
Com a posição das teclas, é possível configurar o teclado para exibir os caracteres que você desejar, ou até mesmo acionar outras portas do Arduino, já que , como comentamos no início, o teclado nada mais é do que uma série de push-buttons dispostos em forma de matriz.
Figura 03 - Placa Arduino e Teclado Matricial 4x4 |
Para começar a trabalhar com o teclado matricial, vamos criar um projeto simples de exibição das teclas pressionadas na tela do computador. Com a biblioteca adicionada à Arduino IDE, copie o código abaixo e carregue-o para sua placa Arduino. Para exibir no monitor serial as teclas presionadas, monte o circuito da figura 03.
Logo no início, após a inclusão da biblioteca "Keypad", declaramos em variáveis a quantidade de linhas e de colunas do teclado utilizado, no nosso caso, 4 linhas e 4 colunas.
Também criamos a matriz TECLAS_MATRIZ, responsável por armazenar as informações do nosso teclado, e onde indicamos para nosso microcontrolador, através de uma matriz, qual caractere é impresso quando um determinado botão do teclado é pressionado.
Abaixo definimos em vetores quais pinos são responsáveis pelas linhas e pelas colunas (respectivamente PINOS_LINHAS e PINOS_COLUNAS). Posteriormente inserimos o comando Keypad teclado_personalizado, para iniciar o teclado e associar nossa matriz de acordo com o pinos estabelecidos para colunas e linhas.
No setup do programa, inserimos o comando Serial.begin(9600), assim iniciando a porta serial em 9600 bits por segundo.
Por fim, no looping do programa, e com o comando leitura_teclas = teclado_personalizado.getKey(), atribuímos à variável leitura_teclas o caractere do botão que foi pressionado. Com essa variável, verificamos se alguma tecla foi realmente pressionada através da condição if (leitura_teclas). Caso alguma tecla tenha sido realmente pressionada, o valor da variável será diferente de "0" e a condição será verdadeira, resultando na impressão da tecla pressionada no monitor serial.
#include <Keypad.h> // Biblioteca do codigo const byte LINHAS = 4; // Linhas do teclado const byte COLUNAS = 4; // Colunas do teclado const char TECLAS_MATRIZ[LINHAS][COLUNAS] = { // Matriz de caracteres (mapeamento do teclado) {'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'} }; const byte PINOS_LINHAS[LINHAS] = {9, 8, 7, 6}; // Pinos de conexao com as linhas do teclado const byte PINOS_COLUNAS[COLUNAS] = {5, 4, 3, 2}; // Pinos de conexao com as colunas do teclado Keypad teclado_personalizado = Keypad(makeKeymap(TECLAS_MATRIZ), PINOS_LINHAS, PINOS_COLUNAS, LINHAS, COLUNAS); // Inicia teclado void setup() { Serial.begin(9600); // Inicia porta serial } void loop() { char leitura_teclas = teclado_personalizado.getKey(); // Atribui a variavel a leitura do teclado if (leitura_teclas) { // Se alguma tecla foi pressionada Serial.println(leitura_teclas); // Imprime a tecla pressionada na porta serial }
Ao abrir o Monitor Serial em 9600 bps, pressione o botão desejado e o mesmo será impresso na tela.
O manual com diagrama elétrico da placa do Teclado Matricial 4x4 está disponível em: Teclado Matricial 4x4 .
© Direitos de autor. 2020: Gomes; Sinésio Raimundo. Última atualização: 02/04/2021
Nenhum comentário:
Postar um comentário