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)
- Power LED
- 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.
We recommend this website for a tutorial about how to get started with PCA9685 and Arduino or MicroPython.