Connecting esp32 with PCF8574

Home Forums esp32 Connecting esp32 with PCF8574

Tagged: ,

Viewing 0 reply threads
  • Author
    Posts
    • #28101
      Eryk
      Participant

        Hello Renzo, love your post about PCF8574.
        I’m doing now a engineer project for my degree and i have a problem. Im using a freenove esp32-wrover-cam(i can post a link to a pinout of this esp32).
        Pinout:
        https://makeradvisor.com/wp-content/uploads/2023/02/Freenove-ESP32-Wrover-CAM-pinout.jpg

        I’m using a cam and wifi on this board, and also i need 7 pins to run other elements (3 buttons, 2 i2c(SDA SLC) for a 64×128 oled display, 1 pin to control POWER LED converter and 1 pin to control transistor controling a small motor). Because of my need of usage a cam and wifi i only left with two ports, 32 and 33, because CAM is disabling all cam ports and wifi is disabling all ACD2 ports. And one of sollutions i found is i2c expander like PCF8574, I managed to emulate i2c on 32 and 33 ports to turn on an display so i thought it would work with expander that way. I bought PCF8574 and i connected it with esp32
        esp32 -> pcf8574
        vcc -> vcc
        GND->GND
        32 -> SCL
        33-> SDA
        I tried to programm a simple code to test a button state read, but it doesn’t work

        #include <Wire.h>
        #include “PCF8574.h”

        // Instantiate Wire for generic use at 400kHz
        TwoWire I2Cone = TwoWire(0);
        // Instantiate Wire for generic use at 100kHz
        TwoWire I2Ctwo = TwoWire(1);

        // Set i2c address
        PCF8574 pcf8574(&I2Ctwo, 0x20);
        //PCF8574 pcf8574(&I2Ctwo, 0x20, 32, 33);
        // PCF8574(TwoWire *pWire, uint8_t address, uint8_t interruptPin, void (*interruptFunction)() );
        // PCF8574(TwoWire *pWire, uint8_t address, uint8_t sda, uint8_t scl, uint8_t interruptPin, void (*interruptFunction)());

        //#define I2C_SDA 33
        //#define I2C_SCL 32
        //Wire.begin(I2C_SDA, I2C_SCL);

        void setup() {
        Serial.begin(115200);
        // put your setup code here, to run once:
        I2Cone.begin(33,32,400000); // SDA pin 33, SCL pin 32, 400kHz frequency

        pcf8574.pinMode(P2, INPUT_PULLUP);
        pcf8574.begin();
        }

        void loop() {
        // put your main code here, to run repeatedly:
        int buttonState = pcf8574.digitalRead(P2);
        Serial.println(buttonState);
        }

        I connecter the bottom with P2 port and it doesn’t work. I don’t know if my esp32 is connecting to this expander or not.

        Also another important question, can I emulate a SDA and SCL ports for my display on PCF8574 ports(P0-P7), or i can use other SDA SCL ports on other side of the PCF8574 board? If not then only solluction i have is to use 2 esp32 for this project.

    Viewing 0 reply threads
    • You must be logged in to reply to this topic.
    Exit mobile version