30 Days Lost in Space → Help Center

Libraries

Keypad Library

Simplify matrix keypad scanning. The Keypad library handles row-column multiplexing so you can focus on what to do with the key presses.

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:

  1. User types digits
  2. Press '#' to submit
  3. Compare with stored password
  4. Press '*' to clear