Most Micro Controllers come with very limited PWM capabilities: Only a few PWM outputs, and only a low resolution like 8 bit, for example.
The PCA9685 from NXP has 16 free-running PWM outputs, and can be daisy-chained up to 62 of these boards for a total of 992 PWM outputs – more than anyone will ever need.
I2C-controlled PWM driver with a built in clock. You don’t need to continuously send the signal from you micro controller.
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 wire up to 62 of these on a single i2c bus, a total of 992 outputs – that’s a lot of servos or LEDs
Adjustable frequency PWM up to about 1.6 KHz
12-bit resolution for each output – for servos, that means about 4us resolution at 60Hz update rate
Configurable push-pull or open-drain output
Output enable pin to quickly disable all the outputs
The breakout board comes with the following features:
Terminal block for power input (or you can use the 0.1breakouts on the side)
3 pin connectors in groups of 4 so you can theoretically plug in 16 servos the same time
Cascadable (chainable) design
1000 capacitor on the V+ line
220 Ohm current limiting resistors on all PWM outputs to protect them, and to make driving LEDs easy
Solder jumpers for the 6 address select pins
This module comes with the headers already assembled, as shown on the pictures.