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
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
Code
This example flashes
[codesyntax lang=”cpp”]
#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); }
[/codesyntax]
Link
PCF8574 IO Expansion Board I/O Expander I2C Bus Evaluation Development Module