#include <Keypad.h>
const uint8_t ROWS = 4;
const uint8_t COLS = 3;
char keys[ROWS][COLS] = {
{ '1', '2', '3' },
{ '4', '5', '6' },
{ '7', '8', '9' },
{ '*', '0', '#' }
};
uint8_t colPins[COLS] = { 5, 4, 3 }; // Pins connected to C1, C2, C3
uint8_t rowPins[ROWS] = { 9, 8, 7, 6 }; // Pins connected to R1, R2, R3, R4
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
void setup() {
keypad.addEventListener(keypadEvent); // Add an event listener for this keypad
Serial.begin(9600);
}
void loop() {
char key = keypad.getKey();
if (key != NO_KEY) {
Serial.println(key);
}
}
// Taking care of some special events.
void keypadEvent(KeypadEvent key) {
switch (keypad.getState()) {
case PRESSED:
// if (key == '#') {
// digitalWrite(ledPin, !digitalRead(ledPin));
// ledPin_state = digitalRead(ledPin); // Remember LED state, lit or unlit.
// }
break;
case RELEASED:
// if (key == '*') {
// digitalWrite(ledPin, ledPin_state); // Restore LED state from before it started blinking.
// blink = false;
// }
break;
case HOLD:
if (key == '*') {
for (int r = 0; r < 4; r++) {
for (int c = 0; c < 3; c++) {
Serial.println(keys[r][c]);
}
}
}
break;
}
}