
Connections to Hd44780 display
PCA9555 32-Bit GPIO Expander with Arduino and LCD Display
Tweet
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 four we have connected 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.
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 three we learned 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. See Part 3
How to connect LCD display:
E = connected display pin 6 (E), hi to lo transition will clock
info into display. Register for command or data is selected by RS.
Data is output in port0, two bits of port1 on the MCP23060
(bits 6, 7) are to control E and RS. R/W goes to ground. Pins 15 and 16 are the back light.

Arduino code for this project: arduino6d.txt.
- In Depth Look at AC Power Control with Arduino
- YouTube Video for Arduino AC Power Control
- Four part series:
- Experimenting with the PCA9555 32-Bit GPIO Expander with Arduino
- PCA9555 32-Bit GPIO Expander with Arduino and a 4X4 Keypad
- PCA9555 32-Bit GPIO Expander with Arduino Using Interrupts
- PCA9555 32-Bit GPIO Expander with Arduino and LCD Display
- Rotary Encoder Used with Arduino Interrupts
- Connecting Arduino to a 74C164 Shift Register
- Using the MC3479 Stepper Motor Controller with Arduino
- My YouTube Channel
- See related:
- Connecting Arduino to a 74C164 Shift Register
- Connect Arduino to LCD Display with 74164 Shift Register
- Arduino with LCD Display and DS18B20 Temperature Sensor
- Below has differing code from the above. Works the same.
- Arduino with LCD Display and DHT11 Temperature-Humidity Sensor
- Arduino Stepper Motor Coil Winder
- Arduino Projects Revisited Revised
- Schematic for Following Projects PDF
- Programming ADS1115 4-Channel I2C ADC with Arduino
- Arduino uses ADS1115 with TMP37 to Measure Temperature
- Connect Arduino to I2C Liquid Crystal Display
- Arduino Reads Temperature Sensor Displays Temperature on LCD Display
- Arduino with MCP4725 12-bit Digital-to-Analog Converter Demo
- Videos
- Arduino with ADS1115 4-Channel 16-bit Analog-to-Digital Converter
- Arduino with MCP4725 12-Bit DAC
- Connect-Program Arduino and a MM5451 LED Display Driver
- Arduino and a MM5451 LED Display Driver YouTube
- Programming Arduino and the 74HC595 Serial Shift Register
- Programming Arduino and the 74HC595 Serial Shift Register YouTube
- Arduino Analog to Digital Conversion Voltmeter
- Arduino ADC Voltmeter YouTube video
- Arduino Pulse-Width Modulation Digital to Analog Conversion
- Arduino PWM to ADC YouTube video
- Zero-Crossing Detectors Circuits and Applications
- Zero-Crossing Detectors YouTube video