PCF8591 ADC/DAC module (YL-40) with ESP32

Supply 3.3-5 V Bus I2C I2C address 0x48 / 0x49 / 0x4A / 0x4B / 0x4C / 0x4D / 0x4E / 0x4F Measures voltage
AOUTAIN0AIN1AIN2AIN3SCLSDAGNDVCC

Pins and ESP32 wiring

PinRoleESP32 pinNotes
AOUTNot wired to the ESP32—DAC output (8-bit), optional
AIN0Not wired to the ESP32—Analog input 0. On-board jumpers join a light sensor, thermistor and pot to some inputs
AIN1Not wired to the ESP32—
AIN2Not wired to the ESP32—
AIN3Not wired to the ESP32—
SCLI2C clock (SCL)D22
SDAI2C data (SDA)D21
GNDGroundGND
VCCPower3V3

Suggested wiring for the 30-pin ESP32 DevKit, avoiding flash, input-only and strapping pins. BoardPilot checks it for you as you wire.

Starter code (Arduino)

#include <Wire.h>

void setup() {
  Serial.begin(115200);
  Wire.begin(21, 22);  // SDA = GPIO 21, SCL = GPIO 22
  Wire.beginTransmission(0x48);
  bool found = Wire.endTransmission() == 0;
  Serial.println(found ? "PCF8591 ADC/DAC module (YL-40) found at 0x48" : "Not found: check power, GND and SDA/SCL");
}

void loop() {}

Sources

Try it in 3D in BoardPilot

BoardPilot Part data (JSON)

Related parts

Part data: CC BY 4.0, free to reuse with credit to BoardPilot.