Utilizando o Teclado Matricial 4×4 no Arduino Uno

Olá pessoal! Hoje iremos tirar do nosso baú um tutorial de como utilizar um Teclado Matricial 4×4 em um Arduino Uno.

Sobre o Teclado Matricial 4×4

O Teclado Matricial 4×4 possui 16 teclas e um conector de 8 vias. Utilizado para entrada de dados.

Teclado Matricial 4x4
Figura 1 – Teclado Matricial 4×4.

Pinagem do Teclado Matricial 4×4

Abaixo, segue a pinagem do Teclado Matricial. O teclado possui 16 teclas push button e suas vias são separadas por linhas (1 a 4) e colunas (5 a 8). O teclado funciona da seguinte forma:

Ao pressionar por exemplo a tecla 1, serão interligadas as vias 1 (linha1) e 5 ( coluna1) e ao pressionar a tecla C, conectaremos a via 3 (linha 3) com a via 8 (coluna 4).

Pinagem do Teclado Matricial 4x4
Figura 2 – Pinagem do Teclado Matricial 4×4.

Ligação do Teclado Matricial 4×4 ao Arduino Uno

Para realizar a montagem do circuito abaixo, é necessário utilizar os seguintes componentes:

 

 Teclado Matricial com Arduino Uno
Figura 3 – Teclado Matricial 4×4 com Arduino Uno

 

Programação do Arduino: Reconhecimento das Teclas do Teclado Matricial 4×4

Abaixo segue o programa de exemplo utilizando a biblioteca do próprio teclado (Keypad.h), onde as teclas do Teclado Matricial serão acionadas e mostradas no monitor serial.

Explicando o Programa

No trecho acima foi incluído a biblioteca do teclado matricial Keypad.h. Também foram definidos o número de linhas e colunas do teclado.

Neste trecho foi feito o mapa do teclado e em seguida foram definidos os pinos do Arduino onde serão ligadas as vias de linhas e colunas do teclado.

Logo após foi criado um objeto Keypad (teclado) com o mapa do teclado, os pinos que serão utilizados no Arduino para a ligação das vias de linhas e colunas do Teclado Matricial.

Em void setup() foram feitas as configurações de taxa de comunicação serial e a mensagem inicial no monitor serial.

No programa principal a função getKey verifica qual tecla foi pressionada do objeto Keypad e armazenada na variável apertatecla.

A tecla pressionada aparecerá no monitor serial ao lado da mensagem “Tecla Pressionada: “.

Monitor Serial Mostrando a Tecla Pressionada
Figura 4 – Monitor Serial Mostrando a Tecla Pressionada.

É possível também escrever um código de reconhecimento de teclas sem utilizar a biblioteca do teclado. Primeiramente veja a montagem do circuito para este novo código.

Lista de Componentes

1 Unidade – Arduino Uno;

1 Unidade – Protoboard 400 pontos;

4 Unidades  – Resistor 10K 5% (1/4W);

1  Unidade –  Teclado Matricial 4×4;

1 Unidade  – Jumper Macho Macho.

 

Circuito Teclado Matricial 4x4 com Arduino Uno na Protoboard
Figura 5 – Circuito Teclado Matricial 4×4 com Arduino Uno na Protoboard.

 

Explicando o Programa

O trecho acima mostra a configuração dos pinos 2,3,4,5 como entrada e 6,7,8 e 9 como saída. Logo em seguida é definida a taxa de comunicação serial e a mensagem inicial que será mostrada no monitor serial.

Neste trecho é iniciado o programa principal, onde é enviado nível lógico alto no pino 9  (linha 1) e nível lógico baixo nos pinos 6,7 e 8 (linhas 2,3 e 4) do Arduino.

O código acima faz o seguinte: se o pino 2 (tecla 1) receber nível lógico alto (if (digitalRead (2)==HIGH ), aparecerá no monitor serial o número 1 (Serial.print (“1”)). Enquanto a tecla 1 estiver sendo pressionada o programa não segue em frente, ou seja, não aparecerá nenhum caractere a mais no monitor serial while (digitalRead(2)==HIGH). Um delay é adicionado para evitar o efeito deboucing.

O trecho acima mostra que se o pino 2 (tecla 2) receber nível lógico alto (if (digitalRead (3)==HIGH ), aparecerá no monitor serial o número 1 (Serial.print (“2”)). Enquanto a tecla 2 estiver sendo pressionada o programa não segue em frente, ou seja, não aparecerá nenhum caractere a mais no monitor serial (while (digitalRead(3)==HIGH). Um delay é adicionado para evitar o efeito deboucing.

 

Monitor serial mostrando todos os caracteres do Teclado Matricial
Figura 6 – Monitor serial mostrando todos os caracteres do Teclado Matricial.

Daqui por diante o programa segue essa lógica para que sejam reconhecidas todas as teclas. Para entender melhor, veja abaixo o circuito para o acionamento da tecla1.

Circuito para acionamento da tecla1
Figura 7 – Circuito para acionamento da tecla1.

Ligado ao Arduino, temos um resistor pull down. Via software, foi escrito no pino 9 nível lógico 1 (5V),

Como este pino está configurado como saída e interligado no pino 1 do teclado, teremos 5V neste pino também.

Quando a tecla 1 é pressionada, teremos 5V sobre o resistor de 10K (pino 5 do teclado). Como este pino está interligado com o pino 2 do Arduino e configurado como saída, o software interpretará nível lógico alto neste pino e enviará o caractere 1 para o monitor serial.

 

Esperamos que tenham gostado deste tutorial. Para tirar dúvidas e sugestões, deixe um comentário abaixo.

Obrigado e confira outros produtos em nossa loja!