If you want to make a robot which has lots of moving parts or if you want to control too many LEDs with PWM outputs, then the limited PWM outputs of your microcontroller would be a big problem for you. To overcome this problem, the only thing you should do is to get a 16-Channel 12-Bit PWM/Servo Driver.
You can control 16 free-running PWM outputs with 16-Channel 12-Bit PWM/Servo Driver using only 2 pins. You can even chain up 62 breakouts to control up to 992 PWM outputs.
It’s an I2C-controlled PWM driver with a built-in clock. That means you do not need to continuously send it to signal to tie up your microcontroller, it is completely free running!
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 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.
- 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″ breakouts on the side)
- Reverse polarity protection on the terminal block input
- Green power-good LED
- 3 pin connectors in groups of 4 so you can plug in 16 servos at once (Servo plugs are slightly wider than 0.1″ so you can only stack 4 next to each other on 0.1″ header
- “Chain-able” design
- A spot to place a big capacitor on the V+ line (in case you need it)
- 220 ohm series resistors on all the output lines to protect them, and to make driving LEDs trivial
- Solder jumpers for the 6 address select pins
- i2c-controlled PWM driver with a built in clock. Unlike the TLC5940 family, you do not need to continuously send it signal tying up your microcontroller, its completely free running!
- 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
- 1 x PCA9685 16-Channel 12-Bit PWM/Servo Driver I2C Interface