Escolar Documentos
Profissional Documentos
Cultura Documentos
18 maio 2015
Pesquisar
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.
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, em
vermelho, 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.
Marcadores
Arquivo do blog
► 2018 (13)
► 2017 (24)
► 2016 (28)
▼ 2015 (35)
► Dezembro 2015 (2)
► Novembro 2015 (3)
Seguindo a imagem acima, vemos que se acionarmos, por exemplo, a tecla 5, será feita uma conexão entre a ► Outubro 2015 (2)
linha 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 ► Setembro 2015 (2)
coluna 3 (pino 7). ► Agosto 2015 (3)
► Julho 2015 (2)
Ligação do teclado matricial ao Arduino
► Junho 2015 (3)
Para ligar esse teclado ao Arduino você vai precisar de 7 portas digitais: quatro para as linhas (portas 4, 5, 6 e ▼ Maio 2015 (3)
Como ligar o motor de passo 28BYJ-48
1 de 6 14/7/18 9:09 p. m.
Teclado matricial membrana 4x3 com Arduino - Arduino e Cia https://www.arduinoecia.com.br/2015/05/teclado-matricial-membr...
► 2014 (55)
► 2013 (67)
Postagens populares
Controle remoto IR no
Arduino
Acionando portas do
Arduino usando Android e
bluetooth
Como estamos trabalhando com chaves, podemos usar no circuito três resistores nos pinos 8, 9 e 10, ou ativar Ligando uma lâmpada com
os resistores pull-up do Arduino via software. módulo relé
2 de 6 14/7/18 9:09 p. m.
Teclado matricial membrana 4x3 com Arduino - Arduino e Cia https://www.arduinoecia.com.br/2015/05/teclado-matricial-membr...
42 }
43
44 //Verifica se alguma tecla da coluna 2 foi pressionada
45 if (digitalRead(9) == LOW)
46 {
47 imprime_linha_coluna(porta-3, 2);
48 while(digitalRead(9) == LOW){};
49 }
50
51 //Verifica se alguma tecla da coluna 3 foi pressionada
52 if (digitalRead(10) == LOW)
53 {
54 imprime_linha_coluna(porta-3, 3);
55 while(digitalRead(10) == LOW){}
56 }
57 }
58 delay(10);
59 }
60
61 void imprime_linha_coluna(int x, int y)
62 {
63 //Mostra informacoes no serial monitor
64 Serial.print("Linha : ");
65 Serial.print(x);
66 Serial.print(" x Coluna : ");
67 Serial.print(y);
68 delay(10);
69 Serial.println();
70 }
O programa faz uma varredura nas portas e mostra, no serial monitor, a informação sobre qual linha e coluna
foi acionada:
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.
3 de 6 14/7/18 9:09 p. m.
Teclado matricial membrana 4x3 com Arduino - Arduino e Cia https://www.arduinoecia.com.br/2015/05/teclado-matricial-membr...
29
30 void setup()
31 {
32 Serial.begin(9600);
33 Serial.println("Teclado 4x3 - Exemplo biblioteca Keypad");
34 Serial.println("Aguardando acionamento das teclas...");
35 Serial.println();
36 }
37
38 void loop()
39 {
40 //Verifica se alguma tecla foi pressionada
41 char tecla_pressionada = meuteclado.getKey();
42
43 //Mostra no serial monitor o caracter da matriz,
44 //referente a tecla que foi pressionada
45 if (tecla_pressionada)
46 {
47 Serial.print("Tecla pressionada : ");
48 Serial.println(tecla_pressionada);
49 }
50 }
Esse programa mostra no serial monitor qual tecla foi pressionada, de acordo com o que foi definido na matriz
de caracteres matriz_teclas:
Com pequenas alterações, podemos usar esses programas com outros tipos de teclado, como por exemplo
teclados matriciais 4x4.
14 comentários:
Anônimo 1 de setembro de 2015 22:05
Olá amigo !!! Vc teria alguma solução para um código em que vc pudesse digitar numeros nesse teclado tipo 123
e o arduino entendesse como cento e vinte e três e não como 1, 2 e 3 ? Grande abraço !!! Michel Ferrari.
Responder
Respostas
Você pode simplesmente “somar” o valor lido de cada tecla, usando strings, por exemplo:
String1 = “1”;
String2 = “2”;
String3 = “3”;
String_agrupada = String1 + String2 + String3;
Serial.println(String_agrupada);
O resultado final exibido no Serial Monitor será 123, como você precisa. Claro, você precisa
programar quantos dígitos você vai precisar, porque nesse exemplo que eu mostrei, para obter o
número 1 você vai precisar de 3 digitos: 001. Outra opção é você utilizar um caractere para indicar o
final do número que você está digitando, como a cerquilha (#), por exemplo.
Abraço
Olá, pode dar um exemplo de codigo que utilize o (#) para finalizar um número digitado?
4 de 6 14/7/18 9:09 p. m.
Teclado matricial membrana 4x3 com Arduino - Arduino e Cia https://www.arduinoecia.com.br/2015/05/teclado-matricial-membr...
Responder
Oi gostaria de saber como faço para usar o teclado para ligar e desligar Leds..assim como o controle remoto
Responder
Olá!Boa noite!
Saberia me dizer se esse teclado contém internamente resistores para proteção das portas, ou se ele precisa de
um circuito pull up para efetuar a conexão com um Kit de Desenvolvimento, no meu caso estou usando o
Mclab.Teria o esquemático dele pra fornecer!
Desde já agradeço!
e-mail: rdias.vinicius@gmail.com
Responder
Respostas
Responder
Olá amigo baixei a biblioteca e copiei o segundo código mais enxuto mas quando mando compilar da o seguinte
erro:
sketch_apr01a:27: error: 'Keypad' does not name a type
sketch_apr01a.ino: In function 'void loop()':
sketch_apr01a:40: error: 'meuteclado' was not declared in this scope
Responder
ola amigos gostaria de saber como faço um codigo para chamar um outro codigo
ex; digitar 1 e faz um tipo de leitura no lcd dita 2 e faz outro tipo de leitura no lcd
Responder
Como resolver quando aparece seguinte erro, ao mandar dar Upload do arquivo avrdude: stk500_getsync(): not
in sync: resp=0x00
Responder
Ola! Gostaria de saber se posso utilizar sua programação em um trabalho escolar e se utilizo o nome "Arduino e
cia" para identificar o autor?
Responder
Respostas
Oi Davi,
Pode referenciar o Arduino e Cia sim.. se precisar do nome do autor dos posts, é Adilson Thomsen, ok
? :)
Abraço!
Adilson
Responder
olá, estou começando agora com arduino, e estou com dificuldade em alguns esquemas de ligações, tenho uma
placa Uno R3, uma lcd shild 16x2, um teclado membrana 4x, um speak e mais dois reles, o lcd e o teclado
consigo usa los apenas separadamente, tenho uma esquema de ligação que não funciona e preciso de ajuda,
gostaria de saber se alguem pode me dar uma força,desde de já agradeço dela atenção. Email é
e.f.a.t.rr@gmail.com
Responder
5 de 6 14/7/18 9:09 p. m.
Teclado matricial membrana 4x3 com Arduino - Arduino e Cia https://www.arduinoecia.com.br/2015/05/teclado-matricial-membr...
Com essa biblioteca consigo ler mais de uma tecla simultaneamente? Sabe me dizer se são utilizados diodos
zener nessa matriz?
Responder
ola,
gostaria de saber como faço no código para que seja lido um valor de entrada como senha e login e verificar se
esta correta com o valor cadastrado!
desde já agradeço.
ATT.
Responder
Publicar Visualizar
6 de 6 14/7/18 9:09 p. m.