#include <SimpleKeypad.h>

// Definições de programa

// Definições teclado LINHA
#define TECLADO_L1  9
#define TECLADO_L2  8
#define TECLADO_L3  7
#define TECLADO_L4  6

// Definições teclado COLUNA
#define TECLADO_C1  5
#define TECLADO_C2  4
#define TECLADO_C3  3
#define TECLADO_C4  2

// Constante em relação ao número de linhas e número de colunas
#define TECLADO_NLINHA 4
#define TECLADO_CLINHA 4

// Vetor de valores do teclado
char tecladoValor[] = {'1','2','3','A','4','5','6','B',
                      '7','8','9','C','*','0','#','D'};

// Vetor de LINHA e COLUNA do teclado
char tecladoLinha[]  = {TECLADO_L1, TECLADO_L2, TECLADO_L3, TECLADO_L4};
char tecladoColuna[] = {TECLADO_C1, TECLADO_C2, TECLADO_C3, TECLADO_C4};

// Manipulador
SimpleKeypad teclado (tecladoValor, tecladoLinha, tecladoColuna, TECLADO_NLINHA, TECLADO_CLINHA);

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

void loop() {
  char tecla = teclado.getKey();

  // Se o valor retornado for diferente de 0 PRINT tecla
  if(tecla != 0)
  {
    Serial.println(tecla);
  }
}