top of page

Interfacing 4*4 Keypad with a Raspberry Pi

Updated: Apr 6

This article will teach you How to Interface 4*4 Keypad with a Raspberry Pi. The process is very simple and involves a keypad and its working will be taught, starting from the list of components to the complete working and hardware implementation. So stay tuned.


Here, you can see all the necessary hardware and software components required to finish this project.

Hardware Components: -

1. Raspberry Pi: #RaspberryPi is a single-board microcomputer which utilizes the SoC, DDR RAM memory, ethernet port, USB host, and micro HDMI on it. It provides the opportunity to interact with the outside world and using its processing power in a compact board at a low cost. In this application, we have used the Python IDE to simplify it.

Raspberry Pi

2. Keypad - 4*4 matrix is used to input values into the project. This particular component has a total of 8 terminals, driven out from the 16 buttons present in the module.


3. SD Card for Raspberry Pi: It is important that we use the right MicroSD for storing and installing the Pi in the system. It is always recommended to use a class-10 SDcard which is capable of storing all the information regarding the Raspberry Pi from installation to application.

SD Card for Raspberry Pi

4. Connecting Wires (Male-Female): As simple as it looks, these are used to connect ends without soldering. While male wired have protruding pins to plug into things, female jumpers are the ends that are used to plug into.

Connecting Wires (Male-Female)

5. USB Cable for Raspberry Pi: This cord is used to temporarily connect the Raspberry Pi to the power supply.

USB Cable for Raspberry Pi


In the keypad, we have four rows and four columns in the matrix. Every key in the keypad corresponds to a particular row and column. The pins could be connected as per your wish. Here we have taken it as follows.

ROWS at : 5, 16, 20, 21

COLUMNS at: 6, 13, 19, 26

Schematic -

Hardware Circuit -

Hardware Circuit


Initially, the GPIOs and time are imported after which the values of rows and columns are assigned.

Later we set up the row connections as output and columns as input and pull them down from high to low.

The function 'readLine' is used to read the lines and characters and the output line is set high. This loop runs and connects with every line GPIO. The rows as shown is assigned, thereby checked while the loop is run and the sleep function is used to give the desired time delay.

Note: Please convert the file from .txt format to .py format before uploading the code to Raspberry Pi.


The connections are made and ensured that the row and column connections are implemented properly. If a user pushes a button linked to the line that is pulled high at the moment, the corresponding column is pulled high too. By reading the line and column pair,

you will decide which key has been pressed. Since power is not necessary for a working keypad, it is connected to any 8 pins.

Hardware Circuit

Scroll right to see all the output images -

To see the practical implementation of the above-explained tutorial, watch the complete video. Also, let us know in the comments section if you face any issue or learned something new after you try it yourself.

Video by: Sai Parimal

Learn Electronics. (June 19, 2020). "Interfacing a 4*4 Keypad with Raspberry Pi".

See Also

Check these out:

2,176 views4 comments

Related Posts

See All


Anushka Gupta
Anushka Gupta

Learn Electronics India's article on interfacing a 4x4 keypad with a Raspberry Pi is a game-changer! The writer's expertise in electronics shines through the entire blog. The troubleshooting tips were especially helpful when I encountered some minor issues during my project. I'm already looking forward to exploring more content from this fantastic blog.


Informative and concise! LearnElectronics India always delivers quality content.


samir lohani
samir lohani

where is the code?


Hi Samir, You may find the code for the Project in the "Code" section in the above article. You may click on "Buy Now" button to download the code.