PCA9685PW 16-Channel Servo Driver is an I²C-controlled PWM (Pulse Width Modulation) controller based on the NXP PCA9685 chip. It is commonly used with microcontrollers such as Arduino, ESP32, Raspberry Pi, STM32, and others to control multiple servo motors, LEDs, or other PWM devices using only two communication pins
VCC:3.3 V or 5 V logic supply
GND:Ground
SDA:MCU SDA
SCL:MCU SCL
V+:External servo power (typically 5–6 V)
OE:Optional output enable
Key features
16 independent PWM channels
Controls up to 16 servo motors or 16 LED channels simultaneously.
I²C interface
Uses only two signal lines:
SDA – Data
SCL – Clock
12-bit PWM resolution
Each channel has 4096 PWM steps, allowing smooth and precise servo positioning or LED dimming.
Programmable PWM frequency
Approximately 24 Hz to 1526 Hz.
Servos typically use 50–60 Hz.
Cascade support
Multiple boards can share the same I²C bus by changing their addresses.
Up to 62 boards can be connected, providing control of 992 PWM outputs.
Why use it?
Microcontrollers often have only a few hardware PWM outputs. The PCA9685 generates PWM signals itself, so the microcontroller simply sends commands over I²C and is free to perform other tasks.