Questions about LED array project.

Peepsalot

Newly Enlightened
Joined
Feb 19, 2006
Messages
40
I have a project in mind which I would like to try. A square array of 16x16 leds(yeah that's 256 leds), powered by a PIC microcontroller, so that images can be displayed on it. One way of doing it would involve "setting" each LED one at a time, so each LED that was on would get a pulse at a 1/256 duty cycle. At this duty cycle, to get the equivalent of 10ma output, I would have to power the LED at 2.56amps for that short pulse, or 5amps for 20ma equivalent.

So do you experts think this possible to do without killing the LED?

Also, I would be retracing the display at 60hz, so the pulsewidth would be (1/256)/60 = 65microseconds. Would this be an issue at all? I don't know if LED's have any sort of delay between power applied and when the actual light output begins.

What sort of powering circuit would be recommended to handle these pulses? I would basically be trying to use 2 16bit shift registers to select the row and column.
 

the_beast

Newly Enlightened
Joined
Dec 25, 2005
Messages
142
I'm no expert, but there's no way a 5mm led is going to take a 5 amp current. The Nichia 5mm, which are well regarded for overdriving, are only rated to take a peak pulsed current of 100ma with a duty of 10% (about 3 times their rated continuous current). Even the K2 is only rated to take a pulse of 1500mA (the same as it's max continuous rating). I think if you applied a voltage high enough to drive 5 amps through the led it will instantly fry (although you might get a VERY brief, very bright flash).

Could you try some kind of latching system for the leds, or maybe use a larger PIC to drive the leds using more output pins (ie reduce the 'off' time for each led)?
 

jtr1962

Flashaholic
Joined
Nov 22, 2003
Messages
7,505
Location
Flushing, NY
A better way to do it is to multiplex the array. You connect all the anodes of each row together. Therefore you have 16 total anodes for the entire array, each powered 1/16 of the time. You then connect the cathodes of each column together. You can pick which LEDs are on by driving their cathode of their column at the same time that the anode of their row is driven. You can also select several LEDs in any given row by powering their cathodes at the same time. For the cathode driver you need a constant current circuit so that if you have multiple LEDs in a given row on at the same time they aren't dimmer than one LED. The advantage of using this method is that the LEDs are driven at 1/16 duty cycle, so you only need to pulse the current 16 times whatever average current you want instead of 256 times. In any case you'll want to limit your cathode current to 100 mA, which is the maximum for 5 mm LEDs. This will give you an average brightness about 22% of the steady-state 20 mA value. This figure was arrived at by looking at data sheets which indicate the momentary output of 5mm LEDs at 100 mA is roughly 3.5 times the 20 mA value. However, since you're on a 1/16 duty cycle you end up with 3.5/16, or 22% of the steady-state 20 mA output. If you make the array with 50,000 mcd LEDs (which are actually closer to 40,000 mcd at 20 mA), you should get a brightness of about 8800 mcd. This is plenty bright.
 

Peepsalot

Newly Enlightened
Joined
Feb 19, 2006
Messages
40
Ok, I guess I'll just be going with a PIC with a ton of outputs. I think I'll need at least 18 output (16for the leds + 2 for the shift register). Then I'd like to have 8 more pins for input(buttons)... :thinking:

I just thought it would be cool to use a simple PIC with minimal pins, if it was possible. I've actually never built any PIC projects before.:shrug:
 
Top