OK. I've finally found some time to play with this and here is what I have so far (using Korman's code snippet):
#include <Keypad.h>
const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns
char keys[ROWS][COLS] = {
{'7','8','9','A'},
{'4','5','6','B'},
{'1','2','3','C'},
{'0','.','e','D'},
};
byte rowPins[ROWS] = {5, 4, 3, 2}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {9, 8, 7, 6,}; //connect to the column pinouts of the keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
int value = 0;
void setup(){
Serial.begin(9600);
}
void loop(){
char key = keypad.getKey();
if (key != NO_KEY && key != 'e')
Serial.print (key); //prints input digit
{
for (int i = 3; i != 0; i--) { //shifts digits to left
value = value * 10 + key;
} if (key == 'e'){ //prints value
Serial.println ();
Serial.print (value);
Serial.println ();}
}
}
It displays the digits as I type them but when I hit "e" I get a result of '11211' no matter what was entered previously.