{"product_id":"adafruit-pcf8575-i2c-16-gpio-expander-breakout-stemma-qt-qwiic","title":"Adafruit PCF8575 I2C 16 GPIO Expander Breakout","description":"\u003cp\u003eExpand your project possibilities, with the Adafruit PCF8575 GPIO Expander Breakout - an affordable 16 channel I2C expander.\u003c\/p\u003e\n\u003cp\u003eGPIO expanders work like this: you have a board with some number of GPIO but not enough for your project - maybe you need more buttons or LEDs. \u003ca href=\"\/en-eu\/products\/adafruit-grand-central-m4-express-featuring-samd51-without-headers\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eYou \u003cem\u003ecould\u003c\/em\u003e upgrade to a board with massive number of GPIO like the Grand Central\u003c\/a\u003e, or you could pop on one of these boards. Connect it over I2C and then you can send\/receive I2C commands to control the GPIO pins to write and read them. It's going to be slower than direct GPIO access, but maybe that doesn't matter if it takes a millisecond instead of a microsecond. You only need the two I2C pins, and you can even share the I2C port with other sensors and devices. Heck, you can even add more expanders for massive I\/O control!\u003c\/p\u003e\n\u003cp\u003eThe PCF8575 is a common and \u003cem\u003eslightly unusual\u003c\/em\u003e I2C expander for folks who are used to the MCP230xx series:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eFirst up, it's very affordable - who doesn't love that?\u003c\/li\u003e\n\u003cli\u003eIt has 16 I\/O pins\u003c\/li\u003e\n\u003cli\u003eThree I2C address select jumpers mean up to 8 expanders to one bus for 64 total GPIO added\u003c\/li\u003e\n\u003cli\u003eEach pin can be an input with light pull-up or an output sink\u003c\/li\u003e\n\u003cli\u003eIRQ output will automatically alert you when input pins change value\u003c\/li\u003e\n\u003cli\u003eThis chip does not have a pin direction register. You cannot set the pins as input or output - instead, each pin has two possible states. Basically, you can think of it as an open-drain output with a 100K resistor pull-up built in.\u003c\/li\u003e\n\u003cli\u003eOption one: Lightly pulled up 'input' - by default it will read as a high logic level, but connecting the GPIO to ground will cause it to read as a low logic level.\u003c\/li\u003e\n\u003cli\u003eOption two: Strong 20mA low-driving transistor sink output. This means the output is 'forced' to be low and will always read as a low logic level.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eThe pin direction \/ state thing is a little odd but it actually works fine for many purposes as long as you know what to expect.\u003c\/p\u003e\n\u003cp\u003eFor example, if you want to read a button or switch, connect one side to the PCF and the other side to ground. Then set the pin to 'light pull-up input' When the button is pressed it will read low, when released it will read high.\u003c\/p\u003e\n\u003cp\u003eIf you want to control an LED, connect the anode to positive voltage through a resistor. When the PCF pin is set to 'light pull-up input' the LED will be off. When the PCF pin is set to 'strong ground output' the LED will connect to ground and turn on.\u003c\/p\u003e\n\u003cp\u003eIf you want to send a GPIO output logic level to some other device or peripheral, the light pull-up acts as high logic out, the strong ground output acts as low logic out.\u003c\/p\u003e\n\u003cp\u003eIf you want to receive a GPIO input logic level, set the pin to light pull-up and then read the pin to determine if the GPIO input is high or low.\u003c\/p\u003e\n\u003cp\u003eBasically, the only thing to watch for is you cannot drive an LED that is expecting the expander GPIO to go high to turn on the LED or connect a button input to a positive voltage without adding an additional pull-down resistor. If this is a bit confusing, worry not - all this stuff is taken care of for you in our Arduino PCF8574\/5 library or CircuitPython\/Python PCF8575 library - you can pretend it has input\/output modes and the library will fake out what you are expecting.\u003c\/p\u003e\n\u003cp\u003eTo get you going fast, Adafruit spun up a custom-made PCB in the \u003ca href=\"\/en-eu\/collections\/stemma-qt\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eSTEMMA QT form factor\u003c\/a\u003e, making it easy to interface with. The \u003ca href=\"https:\/\/learn.adafruit.com\/introducing-adafruit-stemma-qt\/what-is-stemma-qt\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eSTEMMA QT connectors\u003c\/a\u003e on either side are compatible with the \u003ca href=\"\/en-eu\/collections\/qwiic\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eSparkFun Qwiic\u003c\/a\u003e I2C connectors. This allows you to make solderless connections between your development board and the PCF8575 or to chain it with a wide range of other sensors and accessories using a compatible cable.\u003c\/p\u003e\n\u003cp\u003e\u003ca href=\"\/en-eu\/products\/jst-sh-cable-qwiic-stemma-qt-compatible\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eQT Cable is not included, but we have a variety in the shop.\u003c\/a\u003e\u003cbr data-mce-fragment=\"1\"\u003e\u003c\/p\u003e\n\u003ch2\u003eTechnical Details\u003c\/h2\u003e\n\u003cp\u003eProduct Dimensions: 40.8mm x 17.7mm x 4.5mm \/ 1.6\" x 0.7\" x 0.2\"\u003c\/p\u003e\n\u003cp\u003eProduct Weight: 2.6g \/ 0.1oz\u003c\/p\u003e","brand":"Adafruit","offers":[{"title":"Default Title","offer_id":40336576512083,"sku":"ADA5611","price":6.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0174\/1800\/products\/5611-00.jpg?v=1745607440","url":"https:\/\/shop.pimoroni.com\/en-eu\/products\/adafruit-pcf8575-i2c-16-gpio-expander-breakout-stemma-qt-qwiic","provider":"Pimoroni Ltd","version":"1.0","type":"link"}