Ligando o DIY 3 x 4 12-Key Numeric Keypad ao Arduino

Confesso que nunca me tinha aventurado neste domínio, mas revelou-se extraordinariamente simples a ligação do teclado numérico ao Arduino.

O modelo que adquiri foi o DIY 3 x 4 12-Key Numeric Keypad.

O modelo do Arduino que utilizei para este teste foi o Arduino Uno R3.

O primeiro passo consiste em “descobrir” qual é a matriz associada ao nosso teclado!

Descobrindo a matriz

Com base nestas instruções, comecei por associar um número a cada pino do teclado.

keypadPin7

De seguida desenhei o esquema da matriz.

esquema01

Agora é necessário testar todas as combinações de pinos, dois a dois, com a ajuda de um multímetro.

Para o efeito utilizei esta estratégia.

2013-12-21 19.32.11

Fui testando as várias combinações de pinos e registando, sempre que obtia uma leitura, o seguinte trio ordenado:

  1. tecla pressionada
  2. pino de ordem inferior
  3. pino de ordem superior

2013-12-21 19.33.04

2013-12-21 19.33.33

Devemos ter o cuidado de ir anotando as combinações que dão resultados positivos, o que eu fiz desta forma.

esquema02Assim, conseguimos identificar o pino do teclado que está associado a cada linha ou coluna da nossa matriz.

Por último, teremos que associar um pino digital do Arduino a cada um dos pinos do teclado. Eu optei por esta associação.

esquema03

Testando a ligação

Agora basta fazer as ligações de acordo com os dados registados na matriz.

2013-12-21 19.54.56

O programa que adaptei para testar esta combinação foi obtido aqui.

Apenas realizei duas pequenas alterações:

  1. adaptei o código para mostrar o ‘*’ e o ‘#’, omitindo a situação do led em on/off
  2. fiz a associação dos pinos de acordo com o meu exemplo
/* Keypadtest.pde
 *
 *  Demonstrate the simplest use of the  keypad library.
 *
 *  The first step is to connect your keypad to the
 *  Arduino  using the pin numbers listed below in
 *  rowPins[] and colPins[]. If you want to use different
 *  pins then  you  can  change  the  numbers below to
 *  match your setup.
 *
 */
#include <Keypad.h>

const byte ROWS = 4; // Four rows
const byte COLS = 3; // Three columns
// Define the Keymap
char keys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'*','0','#'}
};
// Connect keypad ROW0, ROW1, ROW2 and ROW3 to these Arduino pins.
byte rowPins[ROWS] = { 9, 8, 7, 6 };
// Connect keypad COL0, COL1 and COL2 to these Arduino pins.
byte colPins[COLS] = { 12, 11, 10 };

// Create the Keypad
Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

void setup()
{
  Serial.begin(9600);
}

void loop()
{
  char key = kpd.getKey();
  if(key)  // Check for a valid key.
  {
    switch (key)
    {
      case '*':
        Serial.println('*');
        break;
      case '#':
        Serial.println('#');
        break;
      default:
        Serial.println(key);
    }
  }
}


Convém não esquecer que é necessário instalar a biblioteca Keypad.h para conseguir compilar o programa com sucesso.

Este vídeo mostra o meu protótipo em funcionamento.

Pelo que entendi, este processo pode ser replicado para vários tipos de teclados, mesmo aqueles que podemos obter a partir de telefones antigos ou que já não funcionam.

Vou ter que experimentar então!

Anúncios

3 thoughts on “Ligando o DIY 3 x 4 12-Key Numeric Keypad ao Arduino

  1. boa noite muito interessante seu prog, teclado
    tentei compilar , mas da erro seguinte
    Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

    se puder ajudar em algo fico agradecido
    abraço

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s