Magos do Arduino

Teclado numérico matriz 4x4

Aprenda a utilizar um teclado numérico matriz 4x4 com o Arduino

Magos do Arduino

Teclado numérico matriz 4x4

O teclado numérico 4x4 é um teclado matricial com 16 botões dispostos em formato 4 linhas x 4 colunas.

Teclado numérico matriz 4x4

Muito utilizado em sistemas embarcados para entrada de dados (senhas, comandos, menus, etc.).

Cada botão corresponde a um ponto de interseção entre uma linha e uma coluna.

A disposição em matriz reduz o número de pinos necessários para leitura.

Permite organizar números, letras e caracteres especiais.

Números de 0 a 9, caracteres especiais * e #, além da teclas adicionais A, B, C e D.

Possui interface simples, baseada em contatos elétricos.

Cada tecla conecta uma linha a uma coluna quando pressionada.

Para identificar a tecla, o Arduino ativa as linhas uma a uma, verificando em qual coluna ocorre a conexão, descobrindo assim qual botão foi pressionado.

O conector possui 8 pinos, correspondentes às 4 linhas (R1–R4) e 4 colunas (C1–C4).

A ordem pode variar de acordo com o fabricante.

Teclado numérico matriz 4x4

Neste projeto você criará um circuito que faz o uso de um teclado numérico matriz 4x4 com o Arduino.

Para a criação deste circuito serão necessários os seguintes componentes:

  • 1x Breadboard (Opcional)
  • 1x Arduino UNO
  • 1x Teclado numérico matriz de 4x4
  • Jumpers

Circuito do teclado numérico matriz 4x4

Para montar o circuito, visualize na imagem a seguir como conectar os componentes entre a placa Arduino e a breadboard.

Circuito Teclado numérico matriz 4x4

Código fonte para o circuito do teclado numérico matriz 4x4

Uma vez criado o circuito, use o código fonte a seguir no Arduino IDE para fazer o upload dele na placa Arduino e assim ver o resultado do circuito em funcionamento.

/**
 * Código do curso Magos do Arduino para utilizar um teclado numérico matriz de 4x4 com o Arduino.
 * 
 * Imprima no monitor serial as leituras dos valores de cada tecla pressionada 
 * no teclado numérico matriz de 4x4 com o Arduino.
 * 
 * Utiliza a biblioteca Adafruit_Keypad, que pode ser instalada através do gerenciador de bibliotecas do Arduino IDE.
 * 
 * (c) Copyright KazaleIT
 * @kazaleitoficial no YouTube
 */

#include <Adafruit_Keypad.h>

// define os pinos de conexão do teclado com o Arduino
#define R1 2
#define R2 3
#define R3 4
#define R4 5
#define C1 8
#define C2 9
#define C3 10
#define C4 11

// dimensões do teclado
const byte LINHAS = 4;
const byte COLUNAS = 4;

// caracteres do teclado
char caracteres[LINHAS][COLUNAS] = { 
  { '1', '2', '3', 'A' },
  { '4', '5', '6', 'B' },
  { '7', '8', '9', 'C' },
  { '*', '0', '#', 'D' } 
};

// array com informações dos pinos das linhas e colunas
byte pinosLinhas[LINHAS] = { R1, R2, R3, R4 };
byte pinosColunas[COLUNAS] = { C1, C2, C3, C4 };

// criar uma instância da classe de controle do teclado
Adafruit_Keypad teclado4x4 = Adafruit_Keypad(makeKeymap(caracteres), pinosLinhas, pinosColunas, LINHAS, COLUNAS);

void setup() {
  // inicializa conexão serial
  Serial.begin(9600);
  // inicializa a classe de controle do teclado
  teclado4x4.begin();
}

void loop() {
  // faz a leitura e processamento caso botão pressionado ou liberado
  teclado4x4.tick();
  while (teclado4x4.available()) {
    keypadEvent e = teclado4x4.read();
    Serial.print((char)e.bit.KEY);
    if (e.bit.EVENT == KEY_JUST_PRESSED) {
      Serial.println(" pressionado");
    } else if (e.bit.EVENT == KEY_JUST_RELEASED) {
      Serial.println(" liberado");
    }
  }

  delay(10);
}