I2C Scanner not detecting address of PCF8574N GPIO Pin Expander Chip

Hello!

I have had some issues using the PCF8574 GPIO Pin expander chip ([link])(PCF8574N Texas Instruments | Integrated Circuits (ICs) | DigiKey)), so to help troubleshoot I have been trying to find its address using the following I2C scanner scripts.

#include <Wire.h>

void setup() {
  Wire.begin();
  Serial.begin(9600);
  while (!Serial);

  Serial.println("\nI2C Scanner");
}

void loop() {
  byte error, address;
  int nDevices;

  Serial.println("Scanning...");

  nDevices = 0;
  for (address = 1; address < 127; ++address) {
    Wire.beginTransmission(address);
    error = Wire.endTransmission();

    if (error == 0) {
      Serial.print("I2C device found at address 0x");
      if (address < 16) {
        Serial.print("0");
      }
      Serial.print(address, HEX);
      Serial.println("  !");

      ++nDevices;
    } else if (error == 4) {
      Serial.print("Unknown error at address 0x");
      if (address < 16) {
        Serial.print("0");
      }
      Serial.println(address, HEX);
    }
  }

  if (nDevices == 0) {
    Serial.println("No I2C devices found\n");
  } else {
    Serial.println("done\n");
  }

  delay(5000);  // wait 5 seconds for the next scan
}

I always get "No I2C device found"
I have tried this same script with the Adafruit PCF8574 Breakout Board and I get an address of 0x20 so I know the script works just not with the IC.

I have tried swapping out the chip itself so it isn't a chip defect.
I have used SCL and SDA on the Arduino Uno as well as A4 and A5.
I have 10k pull-up resistors on SDA and SCL.
I have tried a power supply of 3.3V and 5V.
My address lines are tied to ground.
I have tried adding by-pass and coupling capacitors.

This is the breadboard setup I have:

Does your breadboard have split power busses on the two halves of the board? Try putting the +5 on the group of pins with the pull ups and the chip V+

1 Like

What @oldcurmudgeon means is, the left and right halves in your image as posted may have separate voltage rail sections, which if your circuit is wired exactly as shown, will mean that the +5 and GND connections from the Uno are not reaching the PCF8574. Alternatively, use a voltmeter to measure the voltage at pins 8 and 16 of the chip directly, to ensure that your power connection is complete.

You have wired the chip incorrectly !

:scream:

Also, 220R is to small.

2 Likes

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.