Component: PWM 16CH 12Bit (PCA9685) (General Output): Difference between revisions
No edit summary |
m Text replacement - "style="background-color:#EAE1EA;"" to "class="mtx-class-propfolder"" |
||
| (5 intermediate revisions by the same user not shown) | |||
| Line 92: | Line 92: | ||
===GetClockFrequency=== | ===GetClockFrequency=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''GetClockFrequency''' | ||
|- | |- | ||
| colspan="2" | Returns the current clock frequency | | colspan="2" | Returns the current clock frequency | ||
| Line 106: | Line 106: | ||
===Initialise=== | ===Initialise=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Initialise''' | ||
|- | |- | ||
| colspan="2" | Sets up the I2C ready for communications to begin | | colspan="2" | Sets up the I2C ready for communications to begin | ||
| Line 120: | Line 120: | ||
===Reset=== | ===Reset=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Reset''' | ||
|- | |- | ||
| colspan="2" | Sends a reset command to the PCA9685 chip over I2C | | colspan="2" | Sends a reset command to the PCA9685 chip over I2C | ||
| Line 134: | Line 134: | ||
===SetAddress=== | ===SetAddress=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SetAddress''' | ||
|- | |- | ||
| colspan="2" | Allows a different I2C address to be specified allowing one component to control multiple PCA9685 modules. | | colspan="2" | Allows a different I2C address to be specified allowing one component to control multiple PCA9685 modules. | ||
| Line 153: | Line 153: | ||
===SetClockFrequency=== | ===SetClockFrequency=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SetClockFrequency''' | ||
|- | |- | ||
| colspan="2" | Sets the current clock frequency, used for things like calculating the PWM frequency and Microsecond duty. | | colspan="2" | Sets the current clock frequency, used for things like calculating the PWM frequency and Microsecond duty. | ||
| Line 172: | Line 172: | ||
===SetExternalClock=== | ===SetExternalClock=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SetExternalClock''' | ||
|- | |- | ||
| colspan="2" | Sets EXTCLK pin to use the external clock | | colspan="2" | Sets EXTCLK pin to use the external clock | ||
| Line 191: | Line 191: | ||
===SetOutputMode=== | ===SetOutputMode=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SetOutputMode''' | ||
|- | |- | ||
| colspan="2" | Sets the output mode of the PCA9685 to either open drain or push pull. Warning: LEDs with integrated zener diodes should only be driven in open drain mode. | | colspan="2" | Sets the output mode of the PCA9685 to either open drain or push pull. Warning: LEDs with integrated zener diodes should only be driven in open drain mode. | ||
| Line 210: | Line 210: | ||
===SetPWM=== | ===SetPWM=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SetPWM''' | ||
|- | |- | ||
| colspan="2" | Sets the PWM output of one of the PCA9685 pins | | colspan="2" | Sets the PWM output of one of the PCA9685 pins | ||
| Line 239: | Line 239: | ||
===SetPWMFrequency=== | ===SetPWMFrequency=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SetPWMFrequency''' | ||
|- | |- | ||
| colspan="2" | Sets the PWM frequency for the entire chip, up to approx 1.6 KHz | | colspan="2" | Sets the PWM frequency for the entire chip, up to approx 1.6 KHz | ||
| Line 258: | Line 258: | ||
===SetPin=== | ===SetPin=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SetPin''' | ||
|- | |- | ||
| colspan="2" | Sets pin without having to deal with on/off tick placement and properly handles a zero value as completely off and 4095 as completely on. | | colspan="2" | Sets pin without having to deal with on/off tick placement and properly handles a zero value as completely off and 4095 as completely on. | ||
| Line 287: | Line 287: | ||
===Sleep=== | ===Sleep=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Sleep''' | ||
|- | |- | ||
| colspan="2" | Puts the module into Sleep mode | | colspan="2" | Puts the module into Sleep mode | ||
| Line 301: | Line 301: | ||
===WakeUp=== | ===WakeUp=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''WakeUp''' | ||
|- | |- | ||
| colspan="2" | Wakes the module from Sleep mode | | colspan="2" | Wakes the module from Sleep mode | ||
| Line 315: | Line 315: | ||
===WriteMicroseconds=== | ===WriteMicroseconds=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''WriteMicroseconds''' | ||
|- | |- | ||
| colspan="2" | Sets the PWM output of one of the PCA9685 pins based on the input microseconds, output is not precise | | colspan="2" | Sets the PWM output of one of the PCA9685 pins based on the input microseconds, output is not precise | ||
| Line 340: | Line 340: | ||
==Property reference== | ==Property reference== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-prop-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Properties''' | ||
|- | |- | ||
|- | |- | ||
| Line 386: | Line 386: | ||
| colspan="2" | Number of microseconds the PWM output can resolve to | | colspan="2" | Number of microseconds the PWM output can resolve to | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | I2C Communications | ||
|- | |- | ||
|- | |- | ||
| Line 420: | Line 420: | ||
| colspan="2" | On older microcontroller devices there is a potential for the I2C hardware channel to lock up if there is not a 10ms delay between an I2C stop event and the next I2C start event. Most modern microcontrollers will not have a problem so this property can be disabled to speed up the I2C communications. | | colspan="2" | On older microcontroller devices there is a potential for the I2C hardware channel to lock up if there is not a 10ms delay between an I2C stop event and the next I2C start event. Most modern microcontrollers will not have a problem so this property can be disabled to speed up the I2C communications. | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | Simulation | ||
|- | |- | ||
|- | |- | ||
Latest revision as of 14:36, 13 July 2026
| Author | Matrix TSL |
| Version | 1.0 |
| Category | General Output |
PWM 16CH 12Bit (PCA9685) component
The PCA9685 is an I²C-bus controlled 16-channel LED controller optimized for Red/Green/Blue/Amber (RGBA) color backlighting or Servo motor applications. Each output has its own 12-bit resolution (4096 steps) fixed frequency individual PWM controller that operates at a programmable frequency from a typical of 24 Hz to 1526 Hz. All outputs are set to the same PWM frequency. Up to 64 devices can be chained together on a single I²C-bus to provide up to 1024 individual PWM outputs.
Component Source Code
Please click here to download the component source project: FC_Comp_Source_PCA9685_16_Channel_PWM.fcfx
Please click here to view the component source code (Beta): FC_Comp_Source_PCA9685_16_Channel_PWM.fcfx
Detailed description
No detailed description exists yet for this component
Examples
No additional examples
Macro reference
GetClockFrequency
| GetClockFrequency | |
| Returns the current clock frequency | |
| Return | |
Initialise
| Initialise | |
| Sets up the I2C ready for communications to begin | |
| Return | |
Reset
| Reset | |
| Sends a reset command to the PCA9685 chip over I2C | |
| Return | |
SetAddress
| SetAddress | |
| Allows a different I2C address to be specified allowing one component to control multiple PCA9685 modules. | |
| Address | |
| Range: 0x40 - 0x7F | |
| Return | |
SetClockFrequency
| SetClockFrequency | |
| Sets the current clock frequency, used for things like calculating the PWM frequency and Microsecond duty. | |
| Clock | |
| Return | |
SetExternalClock
| SetExternalClock | |
| Sets EXTCLK pin to use the external clock | |
| Prescale | |
| External Clock Prescaler - Range: 3-255 | |
| Return | |
SetOutputMode
SetPWM
SetPWMFrequency
| SetPWMFrequency | |
| Sets the PWM frequency for the entire chip, up to approx 1.6 KHz | |
| Frequency | |
| Floating point frequency that we will attempt to match | |
| Return | |
SetPin
Sleep
| Sleep | |
| Puts the module into Sleep mode | |
| Return | |
WakeUp
| WakeUp | |
| Wakes the module from Sleep mode | |
| Return | |
WriteMicroseconds