I've been working on my first official project YAAC (hopefully that name hasn't been taken). I've got the breadboard version to a point i'm happy with and wanted to share some pictures and a video.
//Hardware
Arduino
PCF8583 Demo Board (futurlec)
8x8 led matrix dual color (sureelectronics)
74HC595's
//Software
I wanted to see if I could create a design that allowed the user to change the color of the leds via pushbutton. It seemed like a waste to have a dual color led matrix if it was going to only be one color. I also include the ability to invert the font on a secondary button.
The design relied entirely on the knowledge and ideas from this forum and the main arduino site. Thanks! I'll post more info later, I at least wanted to get this up and get some feedback on the design.
Each matrix has 16 cathodes (8 red + 8 green) so 7 would be chained already. If you connect the cathodes of each color together and do rowscanning in stead of columns, perhaps it could be done with 5?
I got bored and just did the same thing with only 4 '595s (well, mine doesn't tell the time yet, it just counts up from zero one second at a time).
It has 3 88 matrices. My matrices have anode rows and cathode columns. With all respective rows connected, and columns controlled individually, I managed to make essentially an 824 matrix, which obviously only needs 32 pins = 4 74HC595s!
[edit]
(8 red + 8 green)
Just read that. I forgot yours was two-color. Mine is obviously only red.[/edit]
Here's kind of the overview with how I use the shift registers...
byte 0, 1, 2 : red cathodes
byte 3, 4, 5 : green cathodes
byte 6: anodes for rowscan
I'm using 8 2222 transistors connected to +5v that get their signals from byte 6 and push out to all 3 panels at the same time. I was originally doing larger 5 panel displays which required this setup, and I like how bright the leds are.
The code to select color is really simple. I keep track of the color cycle with an int and have a case statement before i do the shift outs...
psuedo code
red:
byte 0, 1, 2 on
byte 3, 4, 5 off
green
byte 0, 1, 2 off
byte 3, 4, 5 on
orange:
byte 0, 1, 2, 3, 4, 5 on
Apologies for not having more of the code ready. It takes a lot more time than I thought to clean stuff up for public consumption.
I'll try and put together the info about designing the fonts and interlacing (not the right word, can't think of anything better) two digits into a single 1 byte value in my next post.
I put together the wiring layout for the shift registers in fritzing. I hope this makes the previous post make a little bit more sense. The part of this that I found the most confusing was the shift register closest to the Arduino is the last byte (6) and the register farthest away is the first byte 0.