4X4 keypad
4X4 keypad used in this demo.

PCA9555 GPIO Expander with Arduino Using Interrupts

by Lewis Loflin


YouTube Video for this project: PCA9555 32-Bit GPIO Expander with Arduino

In this series I'll be connecting the PCA9555D 32-bit GPIO expander board to an Arduino micro-controller. First we started out simple with counting from 0 to 255 in binary on eight LEDs. See Part 1 for technical information and getting started.

Here in part three we will learn to use the interrupt pin to jump to the key scan routine only when a key is pressed. A BCD value is output on the eight LEDs.

In part two we learned to connect a 4X4 keypad to an 8-bit port. Using "polling" the routine getKey() we will check for a key press and return a BCD value from 0 to 16 displayed on the eight LEDs. See Part 2

In part four we will connect a type a Hd44780 type LCD display and learn how to enter data and manipulate character date and strings. In addition to the LCD display we will scan a keypad, use hardware interrupts, all connected through a single PCA9555 module. In addition I'll reveal some code little discussed with Arduino and we will convert/manipulate code for output to the LCD display. See Part 4

This differs from two only in the addition of interrupt use instead of polling.

Arduino code for this project: arduino_pca9555_irq.txt