PCA9685 16ch 12bit PWM/Servo controller Module
This module (HCMODU0097) is a breakout board for the NXP PCA9685 16 channel PWM controller. It features 16 fully programmable PWM outputs with a 12bit resolution giving a total of 4096 programmable steps with a duty cycle being adjustable from 0% to 100%. Additionally, the output frequency of all 16 channels can be programmed...
This module (HCMODU0097) is a breakout board for the NXP PCA9685 16 channel PWM controller. It features 16 fully programmable PWM outputs with a 12bit resolution giving a total of 4096 programmable steps with a duty cycle being adjustable from 0% to 100%. Additionally, the output frequency of all 16 channels can be programmed from 24Hz to 1526Hz. Intended for controlling the brightness of multiple LEDs, the programmability of its PWM outputs means that it can also be configured for producing PWM signals compatible with driving standard servos. In fact, this module has been designed with this purpose in mind with 16 sets of headers that allow for any servo with a standard header to be directly plugged into the module. A screw terminal block provides a means of powering the attached servos from an external 5V PSU and so the number of servos you can drive from your microcontroller and so is not limited by the microcontrollers own power supply. For Arduino users, with this module and our exclusive Arduino library (HCPCA9685) you can directly control up to 16 servos from your Arduino with only a few commands.
The module also includes an I2C header with 10K pullup resistors and so only requires two data pins (SDA & SCL) to control the module. Solderable pads on the module provide a means of changing the default I2C address (0x40) to one of 62 options, meaning more than one module can be connected to the same I2C bus.
A wide operating range of 2.3V to 5.5V allows the module to be powered from a range of power supplies and when powered from a 3.3V supply is safe to interface to a Raspberry Pi or 3.3V or any other non 5V tolerant microcontrollers.
PLEASE NOTE: The PWM output pins on this module are capable of sinking a maximum of 25mA or sourcing a maximum of 10mA. Do not attempt to drive high current devices such as motors, bulbs etc, directly from these pins as you will risk damaging the module. For servos, power is provided externally via the terminal header and only a small amount of current is drawn by the servo from each PWM pin.
• Product code: HCMODU0097
• Operating power supply voltage range of 2.3 V to 5.5 V with 5.5 V tolerant inputs
• 16 LED drivers. Each output programmable at: Off / On /
• 1 MHz Fast-mode Plus compatible I2C-bus interface with 30 mA high drive capability on SDA output for driving high capacitive buses
• 4096-step (12-bit) linear programmable PWM output varying from fully
off (default) to maximum brightness
• Output frequency (all PWM output) typically varies from 24 Hz to 1526 Hz
• Sixteen totem pole outputs (sink 25 mA and source 10 mA at 5 V) with software
programmable open-drain LED outputs selection (default at totem pole). No input
• 4 software programmable I2C-bus addresses (one LED All Call address and three LED
Sub Call addresses) allow groups of devices to be addressed at the same time in any
combination (for example, one register used for ‘All Call’ so that all the PCA9685s on
the I2C-bus can be addressed at the same time and the second register used for three
different addresses so that 1⁄3 of all devices on the bus can be addressed at the same
time in a group). Software enable and disable for these I2C-bus address.
• 25 MHz typical internal oscillator requires no external components
• External 50 MHz (max.) clock input
• Internal power-on reset
• Noise filter on SDA/SCL inputs
• Edge rate control on outputs
• No output glitches on power-up
• Supports hot insertion
• Low standby current
Raspberry Pi users:
For Raspberry Pi uses we have tested this module with the free Cayenne cloud based IoT software platform. Simply connect the module to your Raspberry Pi as shown below and use the Cayenne software platform to get remote analogue voltage readings without writing a single line of code.
You can create a free account simply by clicking our referral link below:
To make using this module with your Arduino as easy as possible we have written an exclusive library (HCPCA9685). This library can be downloaded from the software section of our support forum here:
Example Arduino sketch and exclusive library available on our support forum here.