Well you can't wire that many LEDs in series, because each LED will drop some of the voltage. Assuming you have a 5v supply, you probably can't even wire two leds in series if you use white leds, as their forward voltage will be much higher than 2.5v.
You could on the other hand wire the leds in each string in parallel. You'll need one resistor per led though. It also won't matter that there are different numbers of LEDs per string if they're wired in parallel.
There's still the issue of being able to supply or sink enough current to consider. But with this setup, you only need to worry about one. Which one depends on how you want to switch the LEDs.
If you use transistors, you can stick them on the anodes or cathodes, but you'll need 15 of the right type of transistor depending on which side of the led you connect them to.
If you use two ULN2803As, a transistor array on a chip, you would connect that to the anodes, and connect the cathodes to ground. You would need to use 15 pins, one per row, on the Arduino with this method however.
And if you use two TPIC6B595 shift registers, you would connect that to the cathodes, and connect the anodes to +5v. You would only need three pins to control this setup, since you send serial data to them and can chain them. The +5v you connect to however would need to be able to handle the current. I don't know what the Arduino's onboard voltage regulator can handle. But you could use a seperate voltage regulator to supply the +5v needed. You just need to make sure to connect its ground to the Arduino's ground. The right regulator could handle somehwere between 1-1.5A.
The question is, how much current would you need to supply?
It looks like you have something like 68 LEDs in that diagram. Assuming you power each LED with 15mA, That's 1020mA total. Just over 1A. That's not unreasonable. However, the TPIC6B595 can only handle 500mA max going through it. Any more and you will definitely burn it out, and you should use less than that. Some people tell me 50% below absolute maximum ratings. The datasheet seems to indicate 90mA continous per drain is okay. 90/7 leds on a single sink = 12mA. But you may as well play it safe and go for the 50%, which is 75mA per sink or roughly 10mA per led. Which is not at all unusual to right a bright LED at. I am running some bright LEDs in one of my projects at only 4-5mA because any brighter and they would be too bright to be comfortable to look at. And if you're gonna have 68 of the things... well, 10mA per LED is a safe bet.
So, now we consider the total current. 10mA per led, with 34 leds on each TPIC = 340mA per TPIC. That's a lot more than the 50% of absolute maximum I'm told is reccomended. That's more like 70%. So it would be safer to drop the mA per LED to 7mA, to get down to 238mA total for the chip.
To summarize...
- Get two TPIC6B595 shift registers.
- Get a T-220 package voltage regulator capable of handling at least 1A and a couple capacitors for it.
- Get one resistor per LED, connect it to the anode.
- Each LED can use no more than 7mA. So Google LED wizard, and put in the smaller of the two forward voltages listed for the led, 7mA, 5v source, and only 1 led in series, and it will tell you the smallest resistor you can use. If the LEDs seem too bright, figure out how much they need to be reduced by, and pick a new value for mA. 4.5mA will be roughly half as bright, and 2mA will be half as bright as that.
- Wire the cathodes for each row together, and then to the appropriate pin on the shift register.
- Wire the resistors attached to the anodes for each row together and then to the voltage regulator +5v source.
- Wire the ground of voltage regulator to the ground of the Arduino and the shift registers.
- Connect the appropriate pins on the shift registers to the Arduino, to eachother, to ground, and to +5v.
- Send serial data to the shift registers to tell them which rows to light.
I think that about covers it.
It may be easier to just use those premade boards the others suggested.