Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use PCF8575 IO Expander Module I2C 16 PIN: Examples, Pinouts, and Specs

Image of PCF8575 IO Expander Module I2C  16 PIN
Cirkit Designer LogoDesign with PCF8575 IO Expander Module I2C 16 PIN in Cirkit Designer

Introduction

The PCF8575 IO Expander Module is a 16-bit I2C-bus and SMBus I/O expander designed to effectively expand the number of digital input/output (I/O) pins available in a microcontroller or microprocessor-based system. This component is particularly useful in applications where additional I/O pins are needed for buttons, LEDs, or other digital signals, and is commonly used in conjunction with platforms like Arduino, Raspberry Pi, and other microcontroller boards.

Explore Projects Built with PCF8575 IO Expander Module I2C 16 PIN

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
ESP32-Based I2C Communication Hub with Multiplexer and Expander
Image of Lights: A project utilizing PCF8575 IO Expander Module I2C  16 PIN in a practical application
This circuit features an Olimex ESP32-EVB microcontroller unit (MCU) for processing and connectivity, interfaced with an MCP23017 I/O expander and an Adafruit TCA9548A I2C multiplexer to expand the number of I/O lines and allow multiple I2C devices to communicate with the MCU over the same bus. Pull-up resistors are connected to the I2C lines for proper bus operation, and both the MCP23017 and TCA9548A have their reset lines pulled high, likely for normal operation without external reset control.
Cirkit Designer LogoOpen Project in Cirkit Designer
I2C-Controlled Relay Switching with ESP32 and MCP23017 for Home Automation
Image of Vloerverwarming: A project utilizing PCF8575 IO Expander Module I2C  16 PIN in a practical application
This circuit appears to be a control system utilizing two MCP23017 I/O expanders interfaced with an Olimex ESP32-EVB microcontroller via I2C communication, as indicated by the SDA and SCL connections with pull-up resistors. The MCP23017 expanders control an 8-channel relay module, allowing the microcontroller to switch various loads, potentially for home automation or industrial control. Additionally, there is an Adafruit ADS1115 16-bit ADC for analog signal measurement, and several heating actuators and a thermostat are connected, suggesting temperature control functionality.
Cirkit Designer LogoOpen Project in Cirkit Designer
MCP23017-Expanded I/O Interface with ADS1115 ADC and ESP32 Control
Image of door and window sensors: A project utilizing PCF8575 IO Expander Module I2C  16 PIN in a practical application
This circuit features two MCP23017 I/O expanders interfaced with multiple switches, allowing for the expansion of input capabilities. The MCP23017s are connected via I2C to an Olimex ESP32-EVB microcontroller, which likely manages the input states from the switches. Additionally, an Adafruit ADS1115 16-bit ADC is included, suggesting that some analog inputs are being monitored, with the ADC also interfaced with the ESP32 via I2C.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32 and MCP23017-Based Smart Relay Control System with DHT22 Sensors
Image of Indoor Lounge: A project utilizing PCF8575 IO Expander Module I2C  16 PIN in a practical application
This circuit is a control system that uses an ESP32 microcontroller to manage multiple relays and read data from DHT22 temperature and humidity sensors. The DFRobot Gravity MCP23017 I2C module expands the GPIO capabilities of the ESP32, allowing it to control additional relays for switching high-power devices.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with PCF8575 IO Expander Module I2C 16 PIN

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of Lights: A project utilizing PCF8575 IO Expander Module I2C  16 PIN in a practical application
ESP32-Based I2C Communication Hub with Multiplexer and Expander
This circuit features an Olimex ESP32-EVB microcontroller unit (MCU) for processing and connectivity, interfaced with an MCP23017 I/O expander and an Adafruit TCA9548A I2C multiplexer to expand the number of I/O lines and allow multiple I2C devices to communicate with the MCU over the same bus. Pull-up resistors are connected to the I2C lines for proper bus operation, and both the MCP23017 and TCA9548A have their reset lines pulled high, likely for normal operation without external reset control.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Vloerverwarming: A project utilizing PCF8575 IO Expander Module I2C  16 PIN in a practical application
I2C-Controlled Relay Switching with ESP32 and MCP23017 for Home Automation
This circuit appears to be a control system utilizing two MCP23017 I/O expanders interfaced with an Olimex ESP32-EVB microcontroller via I2C communication, as indicated by the SDA and SCL connections with pull-up resistors. The MCP23017 expanders control an 8-channel relay module, allowing the microcontroller to switch various loads, potentially for home automation or industrial control. Additionally, there is an Adafruit ADS1115 16-bit ADC for analog signal measurement, and several heating actuators and a thermostat are connected, suggesting temperature control functionality.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of door and window sensors: A project utilizing PCF8575 IO Expander Module I2C  16 PIN in a practical application
MCP23017-Expanded I/O Interface with ADS1115 ADC and ESP32 Control
This circuit features two MCP23017 I/O expanders interfaced with multiple switches, allowing for the expansion of input capabilities. The MCP23017s are connected via I2C to an Olimex ESP32-EVB microcontroller, which likely manages the input states from the switches. Additionally, an Adafruit ADS1115 16-bit ADC is included, suggesting that some analog inputs are being monitored, with the ADC also interfaced with the ESP32 via I2C.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Indoor Lounge: A project utilizing PCF8575 IO Expander Module I2C  16 PIN in a practical application
ESP32 and MCP23017-Based Smart Relay Control System with DHT22 Sensors
This circuit is a control system that uses an ESP32 microcontroller to manage multiple relays and read data from DHT22 temperature and humidity sensors. The DFRobot Gravity MCP23017 I2C module expands the GPIO capabilities of the ESP32, allowing it to control additional relays for switching high-power devices.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications and Use Cases

  • Expanding I/O capabilities in microcontroller projects
  • Interfacing with a large number of sensors or actuators
  • Building keypad interfaces for user input
  • Home automation systems
  • Industrial control systems

Technical Specifications

Key Technical Details

  • Operating Voltage: 2.5V to 5.5V
  • I2C Bus Speed: Up to 400 kHz (Fast-mode)
  • I/O Pins: 16-bit remote I/O pins for the I2C bus
  • Interrupt Output: Active LOW interrupt output
  • Addressing: 8 hardware address pins for 64 possible addresses

Pin Configuration and Descriptions

Pin Number Pin Name Description
1 A0 Address pin 0
2 A1 Address pin 1
3 A2 Address pin 2
4 VSS Ground (0V)
5 SDA Serial Data Line for I2C
6 SCL Serial Clock Line for I2C
7 INT Interrupt Output
8-23 P00-P17 16 I/O pins
24 VDD Positive Power Supply (2.5V to 5.5V)

Usage Instructions

How to Use the Component in a Circuit

  1. Powering the Module: Connect VDD to a 2.5V to 5.5V power supply and VSS to ground.
  2. Setting the Address: Connect A0, A1, and A2 to either VDD or VSS to set the hardware address.
  3. Connecting to a Microcontroller:
    • Connect SDA and SCL to the corresponding I2C data and clock lines on your microcontroller.
    • Optionally, connect the INT pin to an interrupt-capable pin on your microcontroller to use the interrupt feature.

Important Considerations and Best Practices

  • Ensure pull-up resistors are connected to the SDA and SCL lines, as they are required for proper I2C communication.
  • Avoid setting the same address for multiple devices on the same I2C bus.
  • When using the interrupt feature, configure the microcontroller's interrupt settings appropriately.

Example Code for Arduino UNO

#include <Wire.h>

// PCF8575 I2C address (adjust based on A0-A2 connections)
const int expanderAddress = 0x20;

void setup() {
  Wire.begin(); // Initialize I2C
  Serial.begin(9600); // Start serial communication for debugging

  // Set all pins of PCF8575 to output
  Wire.beginTransmission(expanderAddress);
  Wire.write(0x00); // Low byte
  Wire.write(0x00); // High byte
  Wire.endTransmission();
}

void loop() {
  // Toggle all pins
  Wire.beginTransmission(expanderAddress);
  Wire.write(0xFF); // Low byte
  Wire.write(0xFF); // High byte
  Wire.endTransmission();
  delay(1000);

  Wire.beginTransmission(expanderAddress);
  Wire.write(0x00); // Low byte
  Wire.write(0x00); // High byte
  Wire.endTransmission();
  delay(1000);
}

Troubleshooting and FAQs

Common Issues

  • I2C Communication Failure: Check the wiring, ensure pull-up resistors are installed, and verify that no two devices have the same address.
  • No Response from I/O Pins: Make sure the PCF8575 is properly powered and that the I2C address is correctly set according to the A0-A2 pins.

Solutions and Tips for Troubleshooting

  • Use an I2C scanner sketch to confirm the PCF8575 is detected on the bus.
  • Check for soldering issues or loose connections that might affect signal integrity.
  • If using the interrupt feature, ensure the INT pin is correctly configured in your microcontroller's firmware.

FAQs

Q: Can I use the PCF8575 with a 3.3V system? A: Yes, the PCF8575 operates from 2.5V to 5.5V, making it suitable for both 3.3V and 5V systems.

Q: How many PCF8575 expanders can I connect to a single I2C bus? A: You can connect up to 64 devices, provided that each has a unique hardware address set by the A0-A2 pins.

Q: What is the maximum current each I/O pin can sink or source? A: The PCF8575 I/O pins are not designed to drive high currents. Refer to the datasheet for exact current specifications, and use external transistors or drivers if higher currents are needed.