PCA9685 16-Channel 12-bit PWM/Servo Driver

Volume discounts:
  • +25 4 % $3.11
  • +100 6 % $3.04
  • +300 9 % $2.97
  • +500 11 % $2.90
  • +1000 13 % $2.83
Shop with confidence Learn More
Availability: 505 items
Ships in 2-3 business days, then:
Free delivery in 10-15 days by YunExpress on orders over $35.
Free delivery in 5-7 days by DHL on orders over $200.
More shipping info

Driving servo motors with the Arduino Servo library is pretty easy, but each one consumes a precious pin - not to mention some Arduino processing power. This 16-Channel 12-bit PWM/Servo Driver will drive up to 16 servos over I2C with only 2 pins. The on-board PWM controller will drive all 16 channels simultaneously with no additional Arduino processing overhead. What's more, you can chain up to 62 of them to control up to 992 servos - all with the same 2 pins.

This board is the perfect solution for any project that requires a lot of servos.

Specificatoins of PCA9685 16-Channel 12-bit PWM/Servo Driver:

  • Characteristics:
  • Dimensions (without headers or terminal block) 2.5" x 1" x 0.1" (62.5mm x 25.4mm x 3mm)
  • Weight (without headers or terminal block): 5.5 grams
  • Weight (with 3x4 headers and terminal block): 9 grams
  • This board/chip uses I2C 7-bit address between 0x60-0x80, selectable with jumpers
  • Terminal block for power input (or you can use the 0.1" leaks on the side)
  • Reverse polarity protection at terminal block input
  • Green energy-good LED
  • 3 pin connectors in groups of 4 so you can connect 16 servos at once (servo plugs are slightly wider than 0.1", so you can only stack 4 next to each other on the 0.1" header
  • "Chain-able" design
  • A point to put a large capacitor on the V+ line (in case you need it)
  • 220 ohm series resistors on all output lines to protect them, and to make driving LEDs trivial
  • Solder jumpers to the 6 address select pins
  • I2c-controlled PWM driver with a built in clock. Unlike the TLC5940 family, you don't need to continuously send the signal by tying your microcontroller, its completely free operation!
  • It is 5V compliant, which means you can control it from a 3.3V microcontroller and still safely drive up to 6V outputs (this is good for when you want to control white or blue LEDs with 3.4+ forward voltages )
  • 6 address select pins so you can connect up to 62 of them on a single I2C bus, a total of 992 outputs - that's a lot of servos or LEDs
  • PWM adjustable frequency up to about 1.6 KHz
  • 12-bit resolution for each output - for servos, which means about 4us resolution at 60Hz refresh rate
  • Configurable push-pull or open-drain output
  • Output enable pin to quickly disable all outputs

Usage Notes For PCA9685 16-Channel 12-bit PWM/Servo Driver:

(1)Drive board connected to Arduino:

The PWM driver board uses the I2C method, so only four lines can be connected to the Arduino device:

Arduino "classic" pin mode:

+ 5v -> VCC


Analog 4 -> SDA

Analog 5 -> SCL

Mega old pin way:

+ 5v -> VCC


20 Digitals-> SDA

21 digital-> SCL

Pin method of Arduino R3 and later (Uno, Mega &


(These boards have dedicated SDA and SCL pins)

+ 5v -> VCC




VCC pin is only for chip power supply, if you want to connect servo or LED lights, please use V+pin power supply, V+pin supports 3.3~6V power supply (chip safe voltage 5V). It is recommended to connect external power supply via the power terminal.

(2) power supply part:

Most of the servo project voltage is 5~6V, especially in multiple steering equipment running at the same time, with the need for high power power supply. If you are directly using the Arduino 5V pin to power the servo directly, there are some unpredictable problems, so we recommend that you have a suitable external power supply for the drive board.

(3) Connect the servo:

Most servos are connected using standard 3-wire female plugs, as long as the corresponding pin on the driver board is on it. (The ground wire is generally black or brown, the signal line is generally yellow or white)

(4) for the address assigned to the driver's license plate:

Each transmission card in the cascade must have a unique access address. The starting I2C address of each driver board is 0×40, you can modify the upper right corner of the jumper I2C address. Connect a solder jumper to indicate a binary number "1".

Write Your Own Review
You're reviewing:PCA9685 16-Channel 12-bit PWM/Servo Driver
Your Rating
Customer Questions
No Questions
Did you find what you were looking for?