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

LanguagesC++
LicenseBSD
HardwareMCP23017 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.