PCA9555 interfaced with HD44780 LCD display.
PCA9555 32-Bit GPIO Expander with Arduino and LCD Display
by Lewis Loflin
Note: the PCA9555 only comes in a surface mount version and will need a carrier board.
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.
PCA9555 Demo Board
4X4 keypad used in this demo.
PCA9555 pin connections and Adapter Board
Update for 2023: the above demo board with two PCA9555s is no longer available. Because the PCA9555 only comes in surface mount, a conversion or Adapter board is needed along with 24, 2.5mm pin headers. (Two rows of twelve.)
For this project one will need two PCA9555s and two Adapter boards.
The "SOIC-24 / SOP24 SMD to DIP Adapter" (search Ebay) sells for $10 for a 10 pack. The PCA9555 sells for ~$2.50 each at www.mouser.com. They have 29,000 in stock as of March 2023.
- Arduino Interface PCA9555 GPIO Expander With Code
- PCA9555 GPIO Arduino, 4X4 Keypad
- PCA9555 GPIO Arduino Using Interrupts
- PCA9555 GPIO, Arduino, LCD Display
- Hardware Interrupts for Arduino Operation
Arduino code for this project: arduino6d.txt.
- Arduino AC Power Control Tutorial
- Rotary Encoder Using Arduino Hardware Interrupts
- Arduino Controlling 74C164 Shift Register
- Arduino LCD Display using 74164 Shift Register
- Arduino LCD Display with DS18B20
- Arduino LCD Display with DHT11 Sensor
- Arduino Interface MC3479 Stepper Motor Controller
- Arduino Controlled IR2110 Based H-Bridge HV Motor Control
- Arduino Measures Current from Constant Current Source
- Arduino Power Magnetic Driver Board for Stepper Motors
- Arduino Controlled Power Constant Current Source
- Arduino
- Arduino Power Inverter DC-AC Power Circuits
- Arduino PWM to Analog Conversion
- Arduino Analog Digital Conversion Voltmeter
- Rotary Encoder Using Arduino Hardware Interrupts
- Better Arduino Rotary Encoder Sensor
- Simple 3-Wire MAX6675 Thermocouple ADC Arduino Interface
- Arduino Stepper Motor Drive Coil Winder
- Arduino IF Statement Code Examples
- Programming ADS1115 4-Channel I2C ADC with Arduino
- Arduino uses ADS1115 with TMP37 to Measure Temperature
- Arduino with MCP4725 12-bit DAC Demo
Web site Copyright Lewis Loflin, All rights reserved.
If using this material on another site, please provide a link back to my site.