MCP23017 — I2C Port Expander with Interrupts
Run out of GPIO pins? The MCP23017 gives you 16 more over I2C, and this library — a fork of Adafruit’s — adds the interrupt support that the original was missing. Wire up buttons, switches, or sensors and get notified instantly when something changes, without polling.
Quick Facts
| Languages | C++ |
| License | BSD |
| Hardware | MCP23017 I2C port expander |
| Community | ⭐⭐⭐ 3 stars · 4 forks |
If you’ve ever needed more pins on an Arduino project, this is the library to reach for. Interrupt-driven GPIO means your main loop stays responsive while the MCP23017 watches your inputs.
Key Features
- 16 extra GPIO pins over I2C — only 2 wires to your Arduino
- Interrupt support for pin-change events — no polling needed
- Adafruit-compatible API — easy drop-in if you’re already using their library
- Tested in production I2C projects (SNIPE, HDSP2111 driver, and more)
Browse all of Red’s open-source projects on GitHub, or see the full code project archive on this site.