What is the Keypad Library?
The Keypad library by Mark Stanley and Alexander Brevig simplifies reading matrix keypads. It handles the row/column scanning, debouncing, and key state tracking.
Installation
Search for "Keypad" by Mark Stanley in the Arduino Library Manager.
Setup
#include <Keypad.h>
const byte ROWS = 4;
const byte COLS = 4;
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {9, 8, 7, 6};
byte colPins[COLS] = {5, 4, 3, 2};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
Key Functions
Get a single key press
char key = keypad.getKey();
if (key) {
Serial.println(key);
}
Key states
// IDLE, PRESSED, HOLD, RELEASED
if (keypad.getState() == PRESSED) { }
Wait for a key
char key = keypad.waitForKey();
Building a Password System
The keypad library is perfect for security codes:
- User types digits
- Press '#' to submit
- Compare with stored password
- Press '*' to clear