Este teclado de 12 Teclas, organizadas em 4 linhas e 3 colunas (tipo 4×3), é um componente do tipo membrana (onde internamente encontramos os famosos “push-buttons”), que pode fazer interface com o Arduino e é muito utilizado para entrada de dados. Veja foto exemplo abaixo:
-
PINAGEM TECLADO MATRICIAL 4X3 TIPO MEMBRANA:
-
Conexão do Teclado Matricial Membrana ao Arduino UNO:
💡 Observação Importante: Como estamos trabalhando com chaves, podemos usar no circuito três resistores “pull-up” nos pinos 8, 9 e 10, ou ativar os resistores pull-up do Arduino via software ( para isso basta depois de configurar o pino digital como “saída/OUTPUT”, então resta apenas setar tal pino digital do Arduino para nível alto/HIGH ).
- → Veja um pedacinho de código de exemplo abaixo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
//------------------------------------------ //Agradecimentos ao pessoal do Arduino & Cia //------------------------------------------ //------------------------------------------ //Código Modificado por Rodrigo Costa. //Data: 25/02/2017 //Blog: https://eletronicaparatodos.com //------------------------------------------ //------------------------------------------ //Pinos ligados aos pinos 8, 9, e 10 do teclado - Colunas pinMode(8, INPUT); pinMode(9, INPUT); pinMode(10, INPUT); //ATIVAÇÃO RESISTORES PULL-UP: digitalWrite(8, HIGH); digitalWrite(9, HIGH); digitalWrite(10, HIGH); |
E então pessoal, bacana né?! Fiquem a vontade em comentar e claro, postar suas próprias opinões! 😉
Mas ainda não terminamos, vamos ao programa, que utiliza a biblioteca “Keypad” (download) encontrada na seção de Playground da página oficial do Arduino. Utilizando esta simples mas elaborada e open-source biblioteca do Arduino, nosso programa fica bem mais “light”, tipo “cristal clear”, risos, 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 código fonte (muitas vezes e por muitos chamados de “programa”, sem qualquer mudança de foco), devemos então 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.
Vamos agora mostrar o código fonte do programa a ser gravado na memória do microcontrolador Atmel da placa Arduino UNO R3 para que o Teclado 4×3 funcione de acordo ao que desejamos (e “codificamos/programamos”). 😉
Para isso iremos utilizar um código fonte de autoria dos amigos do site Arduino & Cia (http://www.arduinoecia.com.br), que é exatamente como o que se segue abaixo:
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); } } |
- DETALHE IMPORTANTE: Esse programa mostra no MONITOR SERIAL a exata tecla que foi pressionada, de acordo com o que foi definido na matriz de caracteres matriz_teclas, veja imagem abaixo:
Com pequenas alterações, este mesmo código, sofrendo pequenas modificações (ou mesmo profundas) e aprimoramentos, pode ser utilizado para trabalhar com outros tipos de teclado, como por exemplo o teclado membrana matricial (keypad) do tipo 4×4.
Por aqui vamos finalizando pessoal…e aí, o que acharam? 🙄
Espero de verdade que tenham gostado e que a partir daqui consigam elaborar programas, circuitos e projetos muito mais legais e elaborados! Ahh, só não esquece de voltar aqui para compartilhar com todos um pouquinho do seu próprio conhecimento!!! 😀
- Medindo e Monitorando a Temperatura com Arduino (Sensor LM35) - 5 de setembro de 2021
- Controle de Cargas através de Entrada Analógica com Arduino - 30 de agosto de 2021
- REVIEW E DICAS – ALICATE AMPERÍMETRO (UNI-T UT210E PRO) - 28 de agosto de 2021