Keypad

Buenas tardes mi nombre es Antonio, y no soy experto en Arduino mas bien mucha afición, he estado buscando y no he encontrado lo que busco o no se buscarlo y os pido perdón.
Me tema es que necesito entrar dos caracteres a través de un teclado 4X4 y solo he sabido hacerlo de un digito

aqui va una muestra de lo que estoy haciendo

// Teclado
const byte filas = 4; //Numero de filas del teclado
const byte columnas = 4; //Numero de columnas del teclado

//Defino una matriz 4x4 con la posicion de las filas y columnas
char matriz[filas][columnas] =
{
{ '1', '2', '3', 'A'},
{ '4', '5', '6', 'B'},
{ '7', '8', '9', 'C'},
{ '*', '0', '#', 'D'},
};

byte pinesFilas[filas] = {9, 8, 7, 6}; //Pines donde van conectadas las filas del teclado
byte pinesColumnas[columnas] = {5, 4, 3, 2}; //Pines donde van conectadas las columnas del teclado

//Inicializo el teclado con el numero de filas, columnas, los pines del Arduino utilizados y la matriz
Keypad teclado = Keypad( makeKeymap(matriz), pinesFilas, pinesColumnas, filas, columnas);
// Fin teclado

int LED = 13;
void setup()
{
Wire.begin();
Serial.begin(115200); //Inicializo el puerto serie
Serial.println("Test de los 48 Servos");
pwm.begin();
pwm2.begin();
pwm3.begin();
pwm.setPWMFreq(FRECUENCIA);
pwm2.setPWMFreq(FRECUENCIA);
pwm3.setPWMFreq(FRECUENCIA);}
//
int servoNumber = 0;

void loop()
{
char tecla = teclado.getKey(); //Almaceno en una variable la tecla presionada
if (tecla)
{
Serial.print("Ha pulsado la tecla: ");
Serial.println(tecla); //Muestra la tecla presionada en el monitor serie

if (tecla == '1')
{digitalWrite (LED, HIGH);
Serial.println("desvio 1 Recto"); // esta linea es para el Monitor Serie
for (i = 180; i > 0; i-=2)
{pwm.setPWM(0, 0, pulseWidth(i));
delay(50);}}
if (tecla == '2')
{digitalWrite (LED, LOW);
Serial.println("desvio 1 Desviado"); // esta linea es para el Monitor Serie
for (i = 0; i < 180; i+=2)
{pwm.setPWM(0, 0, pulseWidth(i));
delay(50);} }
}
como se ve el if (tecla == '1') tengo que seguir hasta el if (tecla == '48'), pero el teclado solo me deja entrar un numero o letra
espero haberme explicado y me podais ayudar un poco
Perdon. antes de llegar al teclado hay otras instrucciones para accionar unos motores que funciona

Moderador
Por favor edita tu post usando etiquetas de código.
Normas del foro

Mira no hay porqué pedir perdón, pero si debes leer las normas como te he apuntado.

@Tony_Relos primero que nada haz lo que te pidió el moderador.

Sobre tu consulta, en principio ten en cuenta que getkey() no bloquea el flujo del programa, esto significa que mientras tu pulsas la tecla el programa sigue corriendo y detectando esa misma pulsación cada vez, por lo que actúa en consecuencia, y podría hacer que el servo asociado no haga lo que esperas. Entonces tienes dos opciones, esperar con un lazo hasta que dejas de pulsarla o poner una variable que altere el flujo (o sea que salga de la lectura del teclado y haga el resto de cosas que no dependen del teclado) hasta que detectes la liberación de la tecla.
Por otro lado, al necesitar 2 pulsaciones se me ocurren 2 posibilidades.
Que al pulsar una tecla guardes cuál fue y fijar un tiempo durante el cual pulsar la segunda, si en ese tiempo no pulsas otra solo tomas la primera.
Que siempre sean 2 pulsaciones, empezando con 0 las que sean de 1 a 9 ("01", "02", etc.)
Seguramente hay más posibilidades (por ej. usar "#" a modo de cuando terminas de pulsar el número).
Y probablemente necesites de todos modos poner un limite de tiempo para las pulsaciones, eso lo verás de acuerdo a lo que quieras lograr.

Saludos