A few weeks ago i started a very ambitious project. I plan on building a large matrix of rgb leds with the same matrix of ir photo-transistors on top of it. Sort of like this:
Now, the table in this video is different in many places. It isnt multiplexed, all are controlled simultaneously, and it's only one color. But basically its the right idea.
with my design i intend to have three rgb leds in in a triangle cluster with the photo transistor in the center and an ir led between clusters.
sorry for my sloppy diagram
However, with 14 rows to control, duty cycle will only be 7% or less. Just a few days ago i had a sudden realization, i could put a capacitor in parallel with the led to keep it lit until the next cycle! i thought i had found a way to give it a virtually 100% duty cycle. now i realize i would need to put 14x the power into it. I am already drawing 60ma per pin of the tlc5940 to drive the 3 leds. now i will need 840ma in order to charge that capacitor. thats nearly 8x the limit of the controller, and there are no other controllers i know of that can drive such a current.
A solution to this would be to use a transistor on every cathode, but with 63 cathodes, that would be a fairly arduous task, and quite expensive too at 60 cents a piece, plus 882 resistors for each led.
Are there any other solutions to the duty cycle issue? i know for sure it can be solved because you can buy a 32x32 rgb led matrix for an arduino uno. GREAT SCOTT on youtube had the same issue and solved it but hasnt released the video on how.
If this is the only way, should i use a darlington tip120 to get the job done or a mosfet? the tlc 5940 is a constant current regulator so i would assume the tip120 is the way to go.
So far with the ir phototransistor grid, i have figured out how to multiplex it and use an op amp to amplify the signal for the arduino to read. you can think of a reason i cant multiplex those transistors let me know before i waste my time building it. It will use 35 pins and the led matrix will use 5 for the tlc5940s and 21 for the anodes. leaving me with 61 pins. too many for the arduino mega. I could reduce the 21 anodes down to 10 if i multiplex it again, 51 pins almost using every i/o i have but it should work right? And as for the mosfet controlling the anodes, but i cant find one that can handle the current of 3 leds x 21 in a row x 14x normal power = 35.2 amps. Thats a TON of current.
A capacitor in parallel with the led would not keep it active if the cathode pin not also pulled to ground. Conversely, if your led cap is charged and you pull the cathode to ground for a different row, you would potentially activate your led at times when you did not want to.
as an aside, check out http://shnatko.tumblr.com it's a similar version of what you're working on building.
Grumpy_Mike:
I would disagree with the last part, any more than 4:1 with an RGB LED and a TLC is too dim.
ah. missed the tcl part. have no experience w/ that part.. couldn't the TC account for the reduction in duty cycle for his array by only controlling the higher order bits on the tcl for greyscale to ensure brighter outputs when a given row is active? you'll lose some resolution on the color palate but I would think you can gain back the brightness. 12 bits per channel seems excessive anyway
It is the degree of control not the actual brightness for the need of 12 bits. The only way to compensate it to have a higher peak current and normally leaded RGB LEDs can't take that.
What is it specifically about using a 5940 that, even at full brightness, would make it unacceptably dim for multiplexing situations then?
Or is the suggestion than a normal RGB LED will be to dimm if multiplexed beyond 25% w/o overdriving it?
These are the results I have seen myself by trying them. The RGB LEDs can not take overdriving without burning out, the results are dissapointingly dim.
I am just passing on my experience ignore it if you like and do your own experiments.