Adafruit
MCP23008 - i2c 8 input/output port expander
The MCP23008 is an I2C 8-bit I/O port expander that adds 8 general-purpose pins to your microcontroller using just two I2C lines (shared with other I2C devic...
The MCP23008 is an I2C 8-bit I/O port expander that adds 8 general-purpose pins to your microcontroller using just two I2C lines (shared with other I2C devices). Each pin can be configured as input, output, or input with internal pull-up, and an external interrupt output notifies you when any input changes — no polling required.
Operating from 2.7–5.5 V, the chip works with both 3.3 V and 5 V systems. Each I/O pin can sink or source up to 20 mA, making it suitable for driving LEDs directly. The DIP-18 package plugs straight into a breadboard or perfboard.
Key Features
- 8 Configurable I/O Pins – Input, output, or input with pull-up on each pin
- I2C Interface – Uses only 2 bus lines, sharable with other I2C devices
- 3 Address Pins – Up to 8 devices on a single I2C bus (64 I/O pins total)
- Interrupt Output – External pin signals input changes without polling
- 20 mA Per Pin – Drive LEDs directly from the expander
- Wide Voltage Range – 2.7–5.5 V operation
- DIP-18 Package – Breadboard and perfboard friendly
Ideal For
- Expanding GPIO on Arduino, Raspberry Pi, or other microcontrollers
- Driving multiple LEDs or reading multiple buttons
- Projects requiring more I/O than the microcontroller provides
Resources
Jargon buster
Plain-language definitions for the technical terms used above.
- GPIO
- General-purpose input/output pins are microcontroller pins you can set in software to read signals, switch devices on and off, or connect to peripherals. The number of GPIO pins matters because it limits how many buttons, LEDs, sensors, and other parts you can wire directly to the board.
- I2C
- I2C is a two-wire communication bus used by many sensors and small modules. It matters because several I2C devices can share the same two wires, but each device needs a compatible address and your controller must support I2C.
- microcontroller
- A microcontroller is a small computer on a chip that runs your program and controls connected inputs and outputs. For this product, it is the part that reads buttons and sensors, drives the display and speaker, and communicates over Bluetooth.
Find this product in
Related Tutorials
Free guides on learn.littlebird.com.au