Managed to get the bi colour led matrix's working using 2xMAX2719 ICs which are driver chips for led matrix's / seven segment displays.  However to get both colours working I have had to use an arduino library called LedControl which allows the powering down of individual ICs on the I2C 'circuit'.  By alternating which colour IC is powered on, two different colours can be achieved on one matrix.  I have had an issue with the chips interfering on the common rail, so I have used diodes to prevent current being sunc by the other chip instead of the LEDs; however I only had 13 so could not do all the channels.  Consequently in the picture below only half the display is lit:


The code below is very basic and a bit 'clumsy' at the minute, but in the end I hope to make it display some frequency analysis for the bose speaker project:

#include "LedControl.h"              

#define RED 1                      
#define GREEN 0                      

LedControl lc=LedControl(12,11,10,2);

void setup() {
  lc.shutdown(RED,false);
  lc.shutdown(GREEN,true);
  lc.setIntensity(GREEN,15);          
  lc.setIntensity(RED,15);            
}

void loop() {
  lc.shutdown(RED,false);

    lc.setLed(RED,7,1,true);
    lc.setLed(RED,7,3,true);
    lc.setLed(RED,6,0,true);
    lc.setLed(RED,6,2,true);
    lc.setLed(RED,5,1,true);
    lc.setLed(RED,5,3,true);
    lc.setLed(RED,4,0,true);
    lc.setLed(RED,4,2,true);
    lc.setLed(RED,3,1,true);
    lc.setLed(RED,3,3,true);
    lc.setLed(RED,2,0,true);
    lc.setLed(RED,2,2,true);
    lc.setLed(RED,1,1,true);
    lc.setLed(RED,1,3,true);
    lc.setLed(RED,0,0,true);
    lc.setLed(RED,0,2,true);
 
  lc.shutdown(RED,true);
  lc.shutdown(GREEN,false);

    lc.setLed(GREEN,0,0,true);
    lc.setLed(GREEN,0,2,true);
    lc.setLed(GREEN,1,1,true);
    lc.setLed(GREEN,1,3,true);
    lc.setLed(GREEN,2,0,true);
    lc.setLed(GREEN,2,2,true);
    lc.setLed(GREEN,3,1,true);
    lc.setLed(GREEN,3,3,true);
    lc.setLed(GREEN,4,0,true);
    lc.setLed(GREEN,4,2,true);
    lc.setLed(GREEN,5,1,true);
    lc.setLed(GREEN,5,3,true);
    lc.setLed(GREEN,6,0,true);
    lc.setLed(GREEN,6,2,true);
    lc.setLed(GREEN,7,1,true);
    lc.setLed(GREEN,7,3,true);
       
  lc.shutdown(GREEN,true);
}

Comment