Recent changes
Slingshot user guide
tag Guide, user
NFCLamp user guide
tag Guide, user
Homepage
MPL115A2
Compiler Error 42
From the mbed microcontroller Cookbook.  

PCA9635 I2C IO Expander

This is a 16-bit I2C-bus LED driver and as a result is a useful bus expander. Only 2 bus lines are needed to interface the mbed with the PCA9635, including an additional enable pin. The advantage of using I2C it that many PCA9635 chips can be connected to the same bus lines in parallel and using an addressing system can be selected individually.

Example Code

N.B.

Always call init() on start up to clear the registers before operations begin.

Code

 #include "mbed.h"
 #include "PCA9635.h"
 
 DigitalOut enable(p26);
 PCA9635 my_driver(p28, p27);
 
 int main()
 {
     //REMEMBER enable 

     enable = 0;

     //N.B. you MUST declare init(int address), before calling any PCA9635 functions
     //turns each pin on and then off

     my_driver.init(0x02);

     short illuminate = 1;
     for(char j = 0; j < 16; j++){ 
         my_driver.bus(illuminate);
         wait(0.7);
         op = (op << 1);           //illuminate LEDs with port bit high
     }
 

    //ramp brightness up three times faster than down, repeatedly
     while(1)
     {
         for(char valueUp=0; valueUp<0xFF; (valueUp = valueUp + 3))
         {
             my_driver.brightness(ALL, valueUp);
         }
         
         for(char valueD=0; valueD<0xFF; valueD++)
         {
             my_driver.brightness(ALL, (0xFF - valueD));
             wait(0.007);
         }
    }
}

Library

ยป Import this library into a programPCA9635

PCA9635 16-bit I2C-bus LED driver

Pinout

A pinout diagram is provided here:

/media/uploads/d_worrall/_scaled_pca9635_pinout.jpg

Schematic

N.B.

1. Remember to set the address of the PCA9635 by tying the relevant address pins high/low.
2. Refer to the PCA9635 datasheet before connecting the LEDs

/media/uploads/d_worrall/pca9635_2.jpg




calendar Page history
Last modified moments ago, by   user Daniel Worrall   tag No tags | 0 comments  

Please login to post comments.