This is a very simple sample code for the PCA9622_LED8x8 library. arget hardware : "I2C 8x8 LED matrix board" from Switch Science https://www.switch-science.com/catalog/2071/

Dependencies:   PCA9622_LED8x8 mbed

You are viewing an older revision! See the latest version

Homepage

0. What is this?

Demo sample code for PCA9622_LED8x8 library.

The PCA9622_LED8x8 is a driver for "I2C 8x8 LED matrix board" from Switch Science". This code will show the wave of the brightness on 8x8 LED array.

Import libraryPCA9622_LED8x8

Library for "I2C 8x8 LED matrix board" from Switch Science https://www.switch-science.com/catalog/2071/

This animation is made by mbed internal calculation.

/media/uploads/nxp_ip/anm.gif

1. How to use

1.1 Before compiling

Just import this program and run on mbed.
Before compiling, set the PinName for your mbed.

PCA9622_LED8x8  matrix( p28, p27 );     //  for 40pin type mbed
//PCA9622_LED8x8  matrix( D14, D15 );   //  for Arduino type mbed
//PCA9622_LED8x8  matrix( dp5, dp27 );  //  for mbed LPC1114

This code was tested on mbed LPC1768, mbed LPC11U24, mbed LPC1114FN28, TG-LPC11U35-501, mbed LPC1549, LPCXpresso824-MAX.

1.2 Customising

Modifying func() function will give different behavior of brightness pattern.

#include "mbed.h"
#include "PCA9622_LED8x8.h"

//  Choose a target platform from next list
PCA9622_LED8x8  matrix( p28, p27 );     //  for 40pin type mbed
//PCA9622_LED8x8  matrix( D14, D15 );   //  for Arduino type mbed
//PCA9622_LED8x8  matrix( dp5, dp27 );  //  for mbed LPC1114

float func( float x, float y, float t );    //  function to make 8x8 image

int main()
{
    float   image[ 8 ][ 8 ];  //  
    int     count   = 0;
    
    matrix.start();

    while(1) {
        
        //  making 8x8 image to "image" array
        for ( int i = 0; i < 8; i++ )
            for ( int j = 0; j < 8; j++ )
                image[ i ][ j ]   = func( i, j, count * 0.2 );

        //  set the image into library internal bufer
        matrix.set_data( image );

        count++;
        wait( 0.05 );
    }
}

float func( float x, float y, float t )
{
//#define     DISPLAY_OFFSET  3.5
#define     DISPLAY_OFFSET  0
#define     SIZE            0.3

    float   s;
    
    x   = (x - DISPLAY_OFFSET) * SIZE;
    y   = (y - DISPLAY_OFFSET) * SIZE;

    s   = cos( powf( x * x + y * y, 0.5 ) - t );
    return ( powf( s, 4.0 ) );
}

2. Reference

For more information, please find library page and Components page


All wikipages