I agree with RuggedCirctuits above. Plus I would think even the partial circuit diagrams are partial themselves? Is it supposed to be LED's between the transistors as well? (Which would answer CrossRoads question above, but it wouldn't work like that either).
Now I'm confused about how multiplexing is supposed to work. I was under the impression that you could use common bases horizontally and common collectors vertically on a grid of transistors and thus use an x,y coordinate to cause the emitter on the relevant transistor to supply the collector current to one of many LEDs.
Actually I think this is possible. Just don't connect all LED's in series down the columns, as I suspect you have done.
I made a quick-ish schematics for a 4 by 4 transistor LED matrix in the attached file. Its like in the very beginning of the video you linked. Not separated in another transistor grid, which was a trick he used to save on output pins.
NOTE: Not actually tested this. Seeing as you already have a few NPN transistors though, you might use something similar for driving your LEDs. As for the resistors the base resistors are not that critical (1k would do, I think), but the top (column) resistors are. Also, the left-most transistors should handle all the current for a hole row in case all LEDs are lit. 4 LEDs in this case. But if using 8 by 8, 8 LEDs times whatever current, say 20 mA each, equal 160 mA. As peak current is 200mA for 2N3904, this should work, seeing as each row is also on for 1/8th of a time also (do not use peak current continuously!)
For the top resistors, in series with the LED (only one at a time, because only one row is active at a time), the value depends on your LEDs. If they have a forward voltage drop of 2 volts, subtract this from Vcc (5V, if using that), and also subtrackt the 2N3904 saturation voltage (stated as 0.2- 0.3 V). Lets say 2.7 volts are left over the resistor.
Ohms law: R = volts / current, 2.7V / 20mA = 135 ohms. the next higher resistor is 150 ohms I think, which you could use.
As for transistors and how they work, at least bipolar transistors (not FET), here is a nice page about that: http://www.kpsec.freeuk.com/trancirc.htm
Also I would like to say that the method used in the video you linked to seems like an unusual way to multiplex an 8 by 8 array. And only one LED can be lit at a time. Kind of like charlieplexing
, but more wasteful on pins. Plus, the Arduino is the source and sink despite using transistors in that case, but as long as just one LED is lit at a time it should be OK. The transistors in this case is just used as a sort of a triple AND gate, to select column transistor, row transistor and these again select the row/column intersection as usual. And as he explains in the video, the transistors themselves are in another two independent 4 by 2 grids. It works (as far as I can see, if wired correctly that is
) but cumbersome imho.
The real world circuit uses 5 arduino pins to source and sink 5v.
Unless I'm missing something here, the video you linked to uses 6 Arduino pins for each set of transistors (the row or column transistors), then 6 more pins for the other set of transistors (IE two sets of 4 by 2 transistor grids). Even charlieplexing can only select one of 20 LED's with 5 pins.
(5 nCr 15 gives me Ma error. But I don't think that is applicable here, nor 15 nCr 5. For three sets of a 64 LED matrix, one LED at a time in each, there would be simply 64^3 possibilites?)
Another similar approach also only lighting one LED at a time could be (as an example) using two 3-to-8 line decoder/multiplexers, like 74HC138 / 74HC238. Then only 6 pins from the Arduino is needed for an 8 by 8 grid of LED's. For three of these you would need 18 pins.
But the more conventional LED grid multiplexing way is to select one row at a time, and setting all LEDs on one row (or vice versa), thus lighting up one row (or column) at a time. There are many ways to do this, one way is to use the same 3-to-8 multiplexer mentioned for the rows, and then another 8 outputs for the columns. This requires 11 pins for a 8 by 8 grid.
Or, control all grid/columns directly, requiring 16 pins. The one example I found in the Arduino playground was not really good (lacking resistors and also driving everything from the Arduino, destroying the outputs if wired like this!), but the principle was there.
Here is another similar one (basically first hit on google), except using a counter for the rows thus saving even more pins for the rows: http://www.best-microcontroller-projects.com/led-dot-matrix-display.html
Btw, which circuit simulation program do you use?