Tak řekl bych, že mám ošetřené čtení jednotlivých číselných hodnot a řazení  do složených čísel. 
Nechal jsem se nakopnout příspěvkem 
https://www.arduino-forum.cz/viewtopic. ... 063#p10355. Trochu mě trápil fakt, že knihovna 
Keypad.h pracuje s řetězci a vrací znaky v 
Char, já potřebují číslo, abych s ním mohl dále pracovat. Takže jsem výsledek ukládal do proměnné typu
 Int, ale tím jsem nezískal zadaváné číslo z klávesnice, ale hodnotu v 
Dec. To znamená, že číslo 0 má hodnotu 48 až po číslo 9, které má hodnotu 57 viz. 
http://asciiset.com/. Toto jsem obešel konstantou (48), kterou jsem odečetl od příchozího čísla v 
Dec.
Vše funguje do chvíle, než zadám nulu. Takže jsem "očůral" změnou konstanty na hodnotu 47 a po zpracování jsem chybějící jedničku odečetl. Asi to není úplně košer, ale funguje to i s nulou. Pokud zadávám číslo o třech znacích a první je nula, tak zapíše následné dva znaky, což mi vyhovuje. 
Kód: Vybrat vše
#include <Keypad.h>
byte Num = 3; // počet cislic v poli znakyKey
int count = 0;  //pocitani cycklu
int cisloKey; // vysledne cislo
int NewKey; // prichozi znak z klavesnice
byte konst = 47; // konstanta pro vypocet cisla z Char znaku
const byte ROWS = 4; //řádky
const byte COLS = 4; // sloupce
char hexaKeys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};
byte rowPins[ROWS] = {12, 11, 10, 9}; //řádky
byte colPins[COLS] = {8, 7, 6, 5}; // sloupce
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); 
void setup(){
  Serial.begin(9600);
}
 
void Keypad(){ //čtení z klávesnice
char customKey = customKeypad.getKey(); 
 if (customKey){
NewKey = (customKey - konst) ; //vypocet cisla z Char (0-9)
if(NewKey){ // přichází nový znak z klávesnice
  if(count ==0){ // jedná se o první znak ??
    cisloKey = NewKey - 1; // je to první znak, vynuluji vysledneCislo tím, že do něj uložím ten znak
     count++;} 
      else if (count < (Num)){
       cisloKey = ((cisloKey * 10) + NewKey)-1; // je to následující znak, předchozí číslo vynásobím 10ti (tím se posune celé do leva) a přičtu znak
        count++;} 
         else if (count = Num){ 
           cisloKey = cisloKey; // je-li dosazeno poctu pozadovanych znaku, neprovadim zadny vypocet
 } 
}
  
      Serial.print("Vysledne cislo: "); 
       Serial.println(cisloKey);   
 }
}
   
void loop(){
Keypad();
}