I have been going through many ways of driving 24 7x5 LED displays without multiplexing, and have now settled price and performance wise, on the SAA1064 drivers running at 50% internal multiplexing.
( I know I could have made it 8x5 but I didnt have enough LEDs on hand )
I have tested the brightness at 50%, and can crank up the LED current a bit to compensate. It is still OK in full sunlight ( which it was not using 20% multiplexing )
This is how I see it happening ( I am a bit confused after going through so many examples ) please suggest better ideas !
( I dont know how to do the thumbnails at the bottom of the post ) so heres the drawing :-
Each set of 4 displays will have 5 chips , and each group of 4 chips will have its own I2C feed.
I will have a remote control sending 24 characters, which I will have to store in an array of 120 sequencial columns of LEDs ( B00100101 etc )
I think I have an idea how to do this.
Then for each group of eight I2C pairs from the CD4052 expanders.
(The example of a one chip expander I couldn't understand, and it uses an interrupt which I am already using for the RFM22 ) plus I have been using the 4052 for over 30 years !
So I send 4 bytes ( LED columns ) in turn to each address of the 4 chips in that group,
then move on to the next group, and so on.
In the example from Tronixstuff, John has this in the setup :-
void initDisplay()
// turns on dynamic mode and adjusts segment current to 12mA
{
Wire.beginTransmission( 0x70 >> 1;);
Wire.send(B00000000); // this is the instruction byte. Zero means the next byte is the control byte
Wire.send(B01000111); // control byte (dynamic mode on, digits 1+3 on, digits 2+4 on, 12mA segment current
Wire.endTransmission();
}
But I will have to call this up every time I want to change the address , and when I want to fade the displays if the light sensor shows low light. ?
Am I on the right track here ?