I thought I would jump in at the deep end, so to speak, and try to build an LED Matrix for my first big Arduino project. I've done a little bit of other stuff before this, but not quite this big. And it seems that controlling 8 x 24 = 192 LED's and getting them to do what they're supposed to do is a bit harder than I anticipated...
Anyway, I'm using 4 shift registers (HC595) - 3 for the anodes and 1 for the cathodes via BC548 transistors. I have managed to make the entire display light up by lighting every anode (in columns) and rapidly cycling through the cathodes (in rows). But now I am stuck as to how to actually get something meaningful onto my display.
I have several questions:
Since "shiftOut" can only do 8 bits, what should I do to control 24 bits of column data? I know I have to use shiftOut repeatedly to push through the data to all 4 registers, but how to I split a 24 bit long into 3 bytes? I can't use lowByte and highByte, because that would only work for 16 bits.
How do I define a list of alphabetic characters into an array that can then be put out to the LED's?
looks useful, but it's in Dutch and I don't understand all of the code. It looks as though he's using two independent shift register chains, using six pins from the Arduino. Would this be easier?
There's more questions too, I need to think about them first.