Home Raspberry Pi Accessories PCA9685 16-Channel 12-Bit PWM Servo Driver — I²C, Arduino, Raspberry Pi, Robot Arm
Skip to product information
1 of 6

Keszoox

PCA9685 16-Channel 12-Bit PWM Servo Driver — I²C, Arduino, Raspberry Pi, Robot Arm

PCA9685 16-Channel 12-Bit PWM Servo Driver I²C, Arduino, Raspberry Pi, Robot Arm

Regular price $12.56 USD
Sale price $12.56 USD
Save Liquid error (snippets/price line 138): divided by 0% Sold out
Taxes included. Shipping calculated at checkout.
Default Title

PCA9685 16-Channel 12-Bit PWM Servo Driver — I²C, Arduino / Raspberry Pi

The PCA9685 module provides 16 independent PWM output channels with 12-bit resolution (4096 steps) via a single I²C interface. It offloads all PWM timing from the MCU, freeing up GPIO pins and CPU cycles. Up to 62 modules can be chained on one I²C bus (via address jumpers), enabling control of up to 992 servo channels from a single Arduino or Raspberry Pi.

Key Specifications

Parameter Value
Driver IC PCA9685 (NXP)
PWM Channels 16 independent
PWM Resolution 12-bit (4096 steps per cycle)
PWM Frequency 24Hz – 1526Hz (programmable)
Interface I²C (address 0x40–0x7F, 62 addresses)
Logic Supply (VCC) 3.3V – 5V DC
Servo Power (V+) Separate terminal (5V–6V for servos)
Output Current (per channel) 25mA (LED drive) / external driver for servos
Operating Temperature −40°C to +85°C
Chainable Modules Up to 62 (992 total channels)

Why Choose PCA9685?

  • 16 Channels, 2 Wires — Controls 16 servos using only SDA + SCL from the MCU
  • 12-Bit Resolution — 4096 steps per PWM cycle for smooth, precise servo positioning
  • Chainable — 62 modules on one bus = 992 servo channels for large robot arms
  • Separate Servo Power — V+ terminal powers servos independently from logic supply
  • Adafruit Library — Full Arduino and Python (Raspberry Pi) library support

Typical Applications

  • Robot arm with 6–16 servo joints (Arduino/Raspberry Pi)
  • Pan-tilt camera gimbal (2–3 servos)
  • Hexapod robot leg control (18 servos)
  • RC vehicle steering and throttle servo control
  • 16-channel LED PWM dimmer (R/G/B LED arrays)
  • Animatronic face and puppet control

Arduino Library & Setup

Install Adafruit PWM Servo Driver Library. Connect SDA→A4, SCL→A5, VCC→3.3V/5V, GND→GND. Power servos via V+ terminal (separate 5V/6V supply).
pwm.begin(); pwm.setPWMFreq(50); // 50Hz for servos
pwm.setPWM(channel, 0, pulseLength); // Set servo position

Servo Pulse Calculation

At 50Hz: pulse range = 150 (0°) to 600 (180°) in 12-bit counts.
Formula: pulseLength = map(angle, 0, 180, 150, 600);

FAQ

Q: Can PCA9685 power servos directly?
A: The onboard regulator powers the IC logic only. Servos must be powered via the V+ screw terminal from an external 5V–6V supply capable of the required current (typically 500mA–1A per servo).

Q: How do I change the I²C address?
A: Solder the A0–A5 address jumper pads on the board. Each combination sets a unique address from 0x40 to 0x7F.

Package Contents

  • 1× PCA9685 16-Channel 12-Bit PWM Servo Driver Module
visa
View full details
Quality Guarantee Certified components
100% Safe Checkout SSL encrypted payment
Fast Shipping Worldwide delivery
90-Day Returns Hassle-free policy