16-Channel 12-bit PWM/Servo Driver - I2C interface - PCA9685
You would figure that creating simple on/off pulses is a pretty easy thing. Well it is. Watch: On....off.....On.....On..(DANG). Ok, it's pretty simple for a single signal, but if you're wanting to create a bunch of well-timed on/off signals, that gets particularly tricky, even for an Arduino.
Enter the PCA9685, and its breakout board .
Instead of using up your limited number of PWM lines, or trying to fake it all in software (and using up all the resources on your microcontroller), you can simply pop a signal over to this chip via I2C to tell it which of 16 lines you want to pulse, with 12-bit (4096) levels of accuracy. And it'll keep doing it, all by itself.
Pretty handy. And the PCA9685 can be chained 62 deep, for a total number of control of 992 PWM output lines - that's impressive!
The kit comes mostly assembled, with a set of 3x4 headers for installation of servo/LED plugs, a 2-pin power terminal block, and a 6-pin 0.1" header for breadboard-compatibility.
Features
- Power input via terminal block or 0.1" spaced pins
- Terminal block has reverse-polarity power input protection
- Green power LED
- 3-pin connectors in groups of four for easy 16-servo installations
- Easy chaining of boards
- Power filtration capacitor installation pads
- 220Ohm output line projection resistors
- Solder pad jumpers for address selection
Specifications
- 5V compliant, and still talks to a 3.3V microcontroller.
- 6 "address select" pins for configuring up to 62 ICs on a single I2C bus
- PWM frequency adjustable up to approximately 1.6kHz
- 12-bit frequency resolution (equates to about 4µs resolution at 60Hz refresh rate)
- Configurable as push-pull or open-drain output
-
Output enable pin available for outside-the-microcontroller "shut it down!" control.
Dimensions
- No headers or terminal block) 2.5" x 1" x 0.1" (62.5mm x 25.4mm x 3mm)
- Weight (no headers or terminal block): 5.5g
-
Weight (with 3x4 headers & terminal block): 9g