Entrar (Login)     Sair     Atendimento : (11) 3337-4933   
   
0
 
R$ 0,00
 
PRODUTOS

Bourns 
Epcos 
Hikari 
Hitano 
Implastec 
IOR 
Littelfuse 
Metaltex 
Microchip 
Modelix 
Samsung 
Schneider 
Semikron 
SMS 
Soft 
Suetoku 
TEE 
Unipower 

 


Início > Arduino / Raspberry > TECLADO MATRICIAL 4×3 PARA ARDUINO - HR309
TECLADO MATRICIAL 4×3 PARA ARDUINO - HR309


clique na imagem para ampliar



Disponibilidade para envio:
1 a 2 dias úteis para compra na loja virtual.

Preço Unitário:
R$ 12,00
Tabela Atacado a partir de: 0 Unidades / Total da Embalagem 
Tabela Distribuidor a partir de: 0 Unidades / Total da Embalagem

Atenção, antes de comprar com desconto nas Tabelas Atacado e Distribuidor, ative este recurso em seu cadastro. Clique aqui. 

Exemplo:
Você deseja comprar também como: (x)Tabela Atacado
                                 (x)Tabela Distribuidor



Quer saber o valor do frete?
Entre com seu CEP    
   


Não era o que você procurava?
Envie-nos uma mensagem.
 

Gostou do produto?
Clique aqui e indique este produto para um amigo.

 
 
Características

 

Teclado matricial membrana 4x3 com Arduino

Vamos ver como utilizar em seu projeto uma forma simples e barata de entrada de dados com o teclado matricial membrana 4x3 (4 linhas x 3 colunas). Além do uso mais comum, que é a digitação de senhas, este teclado pode também ser usado para inserir coordenadas em uma máquina CNC, ou valores em uma máquina automática de vendas, por exemplo.

teclado matricial membrana 4x3 Arduino

Internamente esse teclado possui uma sequência de chaves (nesse teclado especificamente são 12), dispostas em forma de matriz. Cada chave quando acionada faz a ligação entre uma linha e uma coluna, e essa informação é enviada ao microcontrolador, que por meio do programa interpreta qual tecla foi pressionada.

A imagem abaixo ilustra essa ligação linha x coluna no teclado 4x3 que estamos usando.

Na parte central da imagem temos, em azul, a representação das conexões das linhas, e no lado direito, emvermelho, a representação das conexões das colunas.

No conector de 7 pinos do teclado, temos o sinal das linhas sendo enviado pelos pinos 1, 2, 3 e 4, e o sinal das colunas enviado pelos pinos 5, 6 e 7.

Teclado matricial arduino 4x3 - Linhas e colunas

Seguindo a imagem acima, vemos que se acionarmos, por exemplo, a tecla 5, será feita uma conexão entre alinha 2 (pino 2) e a coluna 2 (pino 6). Acionando a tecla 3, a conexão será entre as linhas 1 (pino 1) e a coluna 3 (pino 7). 

Ligação do teclado matricial ao Arduino

Para ligar esse teclado ao Arduino você vai precisar de 7 portas digitais: quatro para as linhas (portas 4, 5, 6 e 7), e três para as colunas (portas 8, 9 e 10) :

Circuito Arduino Uno e teclado matricial 4x3
Como estamos trabalhando com chaves, podemos usar no circuito três resistores nos pinos 8, 9 e 10, ou ativar os resistores pull-up do Arduino via software. 


Programa teclado matricial 4x3

Nesse primeiro programa não vamos usar nenhuma biblioteca, definindo manualmente os pinos de saída (linhas) e entrada (colunas), e a ativação dos resistores pull-up.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
//Programa : Teclado matricial 4x3 Arduino
//Autor : Arduino e Cia

void setup()
{
  //Pinos ligados aos pinos 4, 5, 6 e 7 do teclado - Linhas
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
   
  //Pinos ligados aos pinos 8, 9, e 10 do teclado - Colunas
  pinMode(8, INPUT);
  //Ativacao resistor pull-up
  digitalWrite(8, HIGH);
  pinMode(9, INPUT);
  digitalWrite(9, HIGH);
  pinMode(10, INPUT);
  digitalWrite(10, HIGH);
   
  Serial.begin(9600);
  Serial.println("Teclado 4x3 - Exemplo 1");
  Serial.println("Aguardando acionamento das teclas...");
  Serial.println();
}
 
void loop()
{
    for (int porta = 4; porta<8; porta++)
    {
      //Alterna o estado dos pinos das linhas
      digitalWrite(4, HIGH);
      digitalWrite(5, HIGH);
      digitalWrite(6, HIGH);
      digitalWrite(7, HIGH);
      digitalWrite(porta, LOW);
      //Verifica se alguma tecla da coluna 1 foi pressionada
      if (digitalRead(8) == LOW)
      {
        imprime_linha_coluna(porta-3, 1);
        while(digitalRead(8) == LOW){}
      }
  
      //Verifica se alguma tecla da coluna 2 foi pressionada 
      if (digitalRead(9) == LOW)
      {
        imprime_linha_coluna(porta-3, 2);
        while(digitalRead(9) == LOW){};
      }
     
      //Verifica se alguma tecla da coluna 3 foi pressionada
      if (digitalRead(10) == LOW)
      {
        imprime_linha_coluna(porta-3, 3);
        while(digitalRead(10) == LOW){}
      }
    }
   delay(10);
 }
 
void imprime_linha_coluna(int x, int y)
{
  //Mostra informacoes no serial monitor
  Serial.print("Linha : ");
  Serial.print(x);
  Serial.print(" x Coluna : ");
  Serial.print(y);
  delay(10);
  Serial.println();
}

O programa faz uma varredura nas portas e mostra, no serial monitor, a informação sobre qual linha e coluna foi acionada:

Serial Monitor linhas x colunas - Exemplo 1

Temos também um segundo programa, utilizando a biblioteca Keypad (download). Com ela, o programa fica bem mais enxuto, pois a biblioteca se encarrega de definir quais pinos são de entrada e saída, como é feita a ativação dos resistores pull-up, etc.

No programa, devemos informar apenas quantas linhas e quantas colunas tem o nosso teclado (linhas 9 e 10 do programa), quais os pinos utilizados (linhas 22 e 24), e também alterar a matriz de caracteres, entre as linhas 15 e 18.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
//Programa : Teclado matricial 4x3 - Biblioteca Keypad
//Autor : Arduino e Cia
//Baseado no programa original de Alexander Brevig

//Carrega a biblioteca Keypad
#include <Keypad.h>

//Definicao da quantidade de linhas e colunas
const byte LINHAS = 4;
const byte COLUNAS = 3;

//Matriz de caracteres
char matriz_teclas[LINHAS][COLUNAS] = 
{
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'*','0','#'}
};

//Definicao dos pinos das linhas
byte PinosLinhas[LINHAS] = {4, 5, 6, 7};
//Definicao dos pinos das colunas
byte PinosColunas[COLUNAS] = {8, 9, 10};

//Inicializa o teclado
Keypad meuteclado = Keypad( makeKeymap(matriz_teclas), PinosLinhas, 
                            PinosColunas, LINHAS, COLUNAS); 

void setup()
{
  Serial.begin(9600);
  Serial.println("Teclado 4x3 - Exemplo biblioteca Keypad");
  Serial.println("Aguardando acionamento das teclas...");
  Serial.println();
}
  
void loop()
{
  //Verifica se alguma tecla foi pressionada
  char tecla_pressionada = meuteclado.getKey();
  
  //Mostra no serial monitor o caracter da matriz,
  //referente a tecla que foi pressionada
  if (tecla_pressionada)
  {
    Serial.print("Tecla pressionada : ");
    Serial.println(tecla_pressionada);
  }
}

Esse programa mostra no serial monitor qual tecla foi pressionada, de acordo com o que foi definido na matriz de caracteres matriz_teclas:

Serial monitor biblioteca Keypad

Com pequenas alterações, podemos usar esses programas com outros tipos de teclado, como por exemplo teclados matriciais 4x4.

Para mais informações entre em contato.

Perguntas Sobre o Produto
Pergunta:
Nome:
Email:
Estado:
 
 
 
Digite acima sua dúvida e clique em perguntar!

 

 

Produtos Relacionados


 
Receba ofertas e novidades por e-mail: 
EMPRESA MINHA CONTA INFORMAÇÕES SELOS REDES SOCIAIS
Quem Somos Login Como Comprar



Localização Cadastre-se Formas de Pagamentos
Fale Conosco Meu Cadastro Políticas de Trocas
Meus Pedidos Segurança e Privacidade
Rastrear Pedidos Seja Nosso Revendedor

FORMAS DE PAGAMENTO:
.
   
       

www.pontodaeletronica.com.br e www.pontodaeletronica.com pertencem a Ponto da Eletrônica Ltda - Rua Santa Ifigênia nº 295 - 1º Andar - Loja 101 - Santa Ifigênia - SP - CEP: 01207-000 - Loja Virtual / Atacado: (11) 3337-4933 / Loja Varejo: (11) 3337-2066. Todas as imagens são meramente ilustrativas, o produto enviado poderá apresentar diferenças de tonalidade. Preços, condições de pagamento e frete, válidos exclusivamente para compras efetuadas neste site, não valendo necessariamente para nossa loja física. Todos os preços e condições comerciais estão sujeitos a alteração sem aviso prévio. Em caso de divergência, o preço válido é o da cesta de compras. Site melhor visualizado na resolução 1024x768. Todos os direitos reservados. É expressamente proibida a reprodução total ou parcial sem prévia autorização da mesma.