Hello world code for PCA9955A class library. The PCA9955A is a 16-channel Fm+ I2C-bus 57mA/20V constant current LED driver. This program shows its basic operation of PWM and current settings.

Dependencies:   mbed PCA995xA

Please refer to the component page for details

PCA9955B and PCA9956B are I²C-bus controlled 16-channel constant current LED driver optimized for dimming and blinking.

High-level API is available

A high-level API that can be used as the "PwmOut" of bed-SDK is available.
This API enables to make instances of each LED output pins and control PWM duty cycle by assignment.
Output current also controllable by API function.
For detail information, refer API document of LedPwmOutCC Class class which is included in PCA995xA class library.

#include "mbed.h"
#include "PCA9956A.h"

PCA9956A    led_cntlr( p28, p27, 0xC4 );  //  SDA, SCL, Slave_address(option)
LedPwmOutCC led( led_cntlr, L0 );

int main()
{
    while( 1 ) {
        for( float p = 0.0f; p < 1.0f; p += 0.1f ) {
            led     = p;
            wait( 0.1 );
        }
    }
}
Committer:
nxp_ip
Date:
Thu Mar 19 08:42:39 2015 +0000
Revision:
3:a67c21ad4173
Parent:
2:cfa5103184b1
Child:
5:e2ad761c8570
Updated to use high-level-API: LedPwmOut

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nxp_ip 2:cfa5103184b1 1 #include "mbed.h"
nxp_ip 2:cfa5103184b1 2 #include "PCA9955A.h"
nxp_ip 2:cfa5103184b1 3
nxp_ip 3:a67c21ad4173 4 PCA9955A led_cntlr( p28, p27, 0x02 ); // SDA, SCL, Slave_address(option)
nxp_ip 3:a67c21ad4173 5 LedPwmOutCC led0( led_cntlr, L0 ); // Instance for LED0 pin
nxp_ip 3:a67c21ad4173 6 LedPwmOutCC led1( led_cntlr, L1 ); // Instance for LED1 pin
nxp_ip 3:a67c21ad4173 7 LedPwmOutCC led2( led_cntlr, L2 ); // Instance for LED2 pin
nxp_ip 2:cfa5103184b1 8
nxp_ip 2:cfa5103184b1 9 int main()
nxp_ip 2:cfa5103184b1 10 {
nxp_ip 3:a67c21ad4173 11 led0.current( 0.5 ); // LED0 pin current output setting to 50%
nxp_ip 3:a67c21ad4173 12 led1.current( 0.5 ); // LED1 pin current output setting to 50%
nxp_ip 3:a67c21ad4173 13 led2.current( 0.5 ); // LED2 pin current output setting to 50%
nxp_ip 2:cfa5103184b1 14
nxp_ip 2:cfa5103184b1 15 while(1) {
nxp_ip 3:a67c21ad4173 16
nxp_ip 3:a67c21ad4173 17 for ( float p = 1.0; p >= 0.0; p -= 0.01 ) {
nxp_ip 3:a67c21ad4173 18 led0 = p; // Set LED0 output PWM dutycycle as 'p'
nxp_ip 3:a67c21ad4173 19 wait( 0.01 );
nxp_ip 2:cfa5103184b1 20 }
nxp_ip 3:a67c21ad4173 21
nxp_ip 3:a67c21ad4173 22 for ( float p = 1.0; p >= 0.0; p -= 0.01 ) {
nxp_ip 3:a67c21ad4173 23 led1 = p; // Set LED1 output PWM dutycycle as 'p'
nxp_ip 3:a67c21ad4173 24 wait( 0.01 );
nxp_ip 3:a67c21ad4173 25 }
nxp_ip 3:a67c21ad4173 26
nxp_ip 3:a67c21ad4173 27 for ( float p = 1.0; p >= 0.0; p -= 0.01 ) {
nxp_ip 3:a67c21ad4173 28 led2 = p; // Set LED2 output PWM dutycycle as 'p'
nxp_ip 2:cfa5103184b1 29 wait( 0.01 );
nxp_ip 2:cfa5103184b1 30 }
nxp_ip 2:cfa5103184b1 31 }
nxp_ip 2:cfa5103184b1 32 }