Referência:
http://www.arduinoecia.com.br/2015/05/teclado-matricial-membrana-4x3-arduino.html
Lista de Materiais:
IDE Arduino 1.0.6
1x Board Arduino UNO
1x Protoboard 830 furos
1x Cabo USB-A male to USB-B male
1x Conj. de fios jumper p/ protoboard
1x Teclado matricial 4x3
Montagem:
Detalhes do teclado 4x3:
*Para que o teclado matricial opere na configuração 4 Linhas e 3 Colunas os Pinos 8 e 9 devem ser ligados aos pinos 6 e 7, conforme a sequência Pino 8 - 6 e Pino 7 - 9.
Firmware 01:
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);
pinMode(9, INPUT);
pinMode(10, INPUT);
//Ativacao resistor pull-up
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
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, 3);
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, 1);
while(digitalRead(10) == LOW){}
}
}
delay(10);
}
void imprime_linha_coluna(int x, int y){
Serial.print("Linha : ");
Serial.print(x);
Serial.print(" x Coluna : ");
Serial.print(y);
delay(10);
Serial.println();
}
Firmware 02:
#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] = {10, 9, 8};
//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(){
char tecla_pressionada = meuteclado.getKey();
if (tecla_pressionada){
Serial.print("Tecla pressionada : ");
Serial.println(tecla_pressionada);
}
}
Download: Keypad.h
Nenhum comentário:
Postar um comentário