It is only a 12 key keypad so it must be DCBA code :
code/keys
0 (1)
1 (2)
2 (3)
3 (4)
4 (5)
5 (6)
6 (7)
7 ("8")
8 (9)
9 (10
A (11)
B (12)
const int data0 = 0; // Interrupt 0, digital pin 2
const int data1 = 1; // Interrupt 1, digital pin 3
int nums = 0;
volatile long readerdata = 0;
String val1 = "";
String val2 = "";
void setup() {
attachInterrupt(data0, readerdata0, CHANGE);
attachInterrupt(data1, readerdata1, CHANGE);
Serial.begin(9600);
Serial.println("\n--Ready--");
}
void readerdata0() {
int status = digitalRead(data0+2);
if (status == LOW)
readerdata = readerdata << 1;
else if (digitalRead(data1+2) == HIGH) {
//Serial.print(readerdata, BIN);
val1 = String(readerdata, BIN);
readerdata = 0;
nums++;
}
}
void readerdata1() {
int status = digitalRead(data1+2);
if (status == LOW)
readerdata = (readerdata << 1) | 1;
else if (digitalRead(data0+2) == HIGH) {
//Serial.print(readerdata, BIN);
val2 = String(readerdata, BIN);
readerdata = 0;
nums++;
}
}
void loop() {
if(nums == 4) {
Serial.println("Code Received: " + val1 + val2);
nums = 0;
}
}