Overview
In this lesson, we will learn how to use a matrix keypad.
Components
- 1 * Arduino UNO
- 1 * USB Cable
- 1 * 4x4 Matrix Keyboard
- 1 * Breadboard
- Several jumper wires
Principle
In order to save the resources of the microcontroller ports, we usually connect the buttons of a matrix in practical projects.
See the schematics of a 4x4 matrix keyboard as below:


In this tutorial, we use the Keypad library. Before programming, please install the library (for how to, see Lesson 17).
Procedures
Step 1: Build the circuit

Step 2: Program
/***********************************************************
File name: 21_4x4MatrixKeyboard.ino
Description: when you click the button on the 4x4 matrix
keyboard, you can see the serial monitor data.
Website: www.adeept.com
E-mail: support@adeept.com
Author: Tom
Date: 2015/05/02
***********************************************************/
#include <Keypad.h>
const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns
//define the cymbols on the buttons of the keypads
char hexaKeys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {9, 8, 7, 6}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {5, 4, 3, 2}; //connect to the column pinouts of the keypad
//initialize an instance of class NewKeypad
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
void setup(){
Serial.begin(9600);//Open serial
}
void loop(){
char customKey = customKeypad.getKey();//Read Key data
if (customKey){
Serial.println(customKey); //send the key data by serial port (UART)
}
}Step 3: Compile the program and upload to Arduino UNO board
Now, press a button on the 4x4 matrix keyboard, and you will see the corresponding key value displayed on Serial Monitor.

