Você está na página 1de 5

Arduino e Cia: Teclado matricial membrana 4x3 com Arduino

1 de 5

http://www.arduinoecia.com.br/2015/05/teclado-matricial-membrana-4...

15/07/2015 21:33

Arduino e Cia: Teclado matricial membrana 4x3 com Arduino

2 de 5

http://www.arduinoecia.com.br/2015/05/teclado-matricial-membrana-4...

coluna 3 (pino 7).

informacoes
motores

IR LCD
sensores

Ligao do teclado matricial ao Arduino

temperatura videos wireless

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

Arquivo do blog

2015 (21)
Junho 2015 (3)
Maio 2015 (3)
Como ligar o motor de passo 28BYJ-48
no Raspberry ...
Teclado matricial membrana 4x3 com
Arduino
Display grfico LCD 128x64 ST7920 em
modo 8 bits (...
Abril 2015 (3)
Maro 2015 (5)
Fevereiro 2015 (3)
Janeiro 2015 (4)
2014 (55)
2013 (67)

Politica de Privacidade

Postagens populares

Acionando portas do
Arduino usando Android e
bluetooth
Hoje vou mostrar um
esquema bem simples (pelo
menos eu espero que seja)
para controlar as portas do Arduino usando
bluetooth e o mdulo blu...

Como estamos trabalhando com chaves, podemos usar no circuito trs resistores nos pinos 8, 9 e 10, ou ativar
os resistores pull-up do Arduino via software.

Programa teclado matricial 4x3


Nesse primeiro programa no vamos usar nenhuma biblioteca, definindo manualmente os pinos de sada
(linhas) e entrada (colunas), e a ativao 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

//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);

Controle remoto IR no
Arduino
J vimos aqui no Arduino e
Cia como controlar
remotamente o Arduino
usando bluetooth (ainda no
viu ? ento veja o artigo Acionando portas...
Ligando uma lmpada com
mdulo rel
Conforme prometido, segue
esquema para ligao de
uma lmpada utilizando
mdulo rel. Procurei deixar
o circuito o mais simples possvel,...
Medidor de distncia com o
sensor ultrassnico
HC-SR04
Hoje apresento o circuito de
um medidor de distncia
usando o sensor
ultrassnico HC-SR04 , o display LCD
Winstar WH1602A e claro, o Ardui...
Enviando dados do Arduino
para o Android usando
bluetooth
No primeiro post sobre o
Android e Arduino ( leia aqui
), eu mostrei como usar um
celular com Android para enviar comandos
e controlar as...

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);

15/07/2015 21:33

Arduino e Cia: Teclado matricial membrana 4x3 com Arduino

3 de 5

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

http://www.arduinoecia.com.br/2015/05/teclado-matricial-membrana-4...

//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){};
}

Arduino e Cia Formulrio de Contato


Utilize este espao para entrar em
contato com o administrador do blog
:
Endereo de email *

Mensa gem *

//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();
}

Google+

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

Temos tambm 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 so de entrada e sada, como feita a
ativao 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 tambm 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

//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

15/07/2015 21:33

Arduino e Cia: Teclado matricial membrana 4x3 com Arduino

4 de 5

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

http://www.arduinoecia.com.br/2015/05/teclado-matricial-membrana-4...

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:

Com pequenas alteraes, podemos usar esses programas com outros tipos de teclado, como por exemplo
teclados matriciais 4x4.
Voc tambm pode gostar

Data e hora no
Arduino com o
mdulo RTC
DS1302

LCD 16x2 com


Como utilizar o
Display grfico
mdulo I2C e RTC mdulo cmera no LCD 128x64 DS1307
Raspberry Pi
ST7920

Ligando uma
lmpada com
mdulo rel
Recomendado por

Postado por Arduino e Cia s 07:31

+2 Recomende isto no Google

Marcadores: arduino, keypad, matricial, teclado

Nenhum comentrio:
Postar um comentrio

15/07/2015 21:33

Arduino e Cia: Teclado matricial membrana 4x3 com Arduino

5 de 5

http://www.arduinoecia.com.br/2015/05/teclado-matricial-membrana-4...

Comentar como:

Publicar

Teclados de
Membrana
Dan Print Industrial-ISO
9001:2008 Teclados de
Membrana h 25 anos!

Postagem mais recente

Pgina inicial

Postagem mais antiga

Assinar: Postar comentrios (Atom)

Arduino e Cia Copyright 2015

15/07/2015 21:33