Arduino and a PCF8574 port expander

The PCF8574 is an 8 bits I/O port expander that uses the I2C protocol. Using this IC, you can use only the SDA and SCL pins of your Arduino board to control up to 8 digital I/O ports.

A0,A1,A2 are address pins
P0,P1,P2,P3,P4,P5,P6,P7 are digital I/O ports
SDA,SCL are the I2C pins

If we set pins A0 to A2 to GND, our device address in binary will be 0x20, thats exactly what I did in my example

pcf8574 pinout

Schematic

Note that the PCF8574 is a current sink device so you do not require the current limiting resistors but my test board had these , doesn’t do any harm just means the LEDs are a bit dimmer

Arduino and PCF8574

Code

This example flashes

#include <Wire.h>
 
// address of PCF8574 IC
#define PCF8574_ADDR (0x20)
 
void setup() 
{
  Wire.begin();
}
 
void loop() 
{
 
 
  //send the data
  Wire.beginTransmission(PCF8574_ADDR);
  Wire.write(0xAA);
  Wire.endTransmission();
  delay(1000);
  Wire.beginTransmission(PCF8574_ADDR);
  Wire.write(0x55);
  Wire.endTransmission();
  delay(1000);
}

 

Link

PCF8574 IO Expansion Board I/O Expander I2C Bus Evaluation Development Module

Related posts

Arduino Uno and HMC5983 magnetometer example

Arduino and PCF8563 RTC example

Arduino and Rotary encoder example

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Read More