Questions about LED matrices

Thread Starter

Macnerd

Joined May 22, 2014
67
I understand the basics of LED matrices & multiplexing. I understand that LEDs are current-driven, i.e., they won't light below a certain current. I know that one uses Ohm's law to calculate the value of the current-limiting resistor. I know that in order to light the LED, a voltage is applied to the anode thru a current-limiting resistor & the cathode is grounded.

This is what I don't understand. An individual LED requires, say, 20 mA. There is, for example, a common anode column 8X8 matrix. 8X20 = 160 mA for each column. Does the driver have to supply 160 mA to each column? But the resistance required to limit the current to 20 mA is less than the resistance required to limit the current to 160 mA. That's what confuses me. How does one supply enough current to light, in our example, a row or column 8X8 matrix, but limit the current to 20 mA for each LED? 8X8 = 64. 64X20mA = 1.28 A. Does the driver have to supply 1.28 A to each row or column?
 
Last edited:

Brevor

Joined Apr 9, 2011
297
The usual way to drive an led matrice is to only drive 1 column and 1 row at a time, if this is the way you are doing it only 1 led is on at a time so only 20 ma is needed.
 

Thread Starter

Macnerd

Joined May 22, 2014
67
The usual way to drive an led matrice is to only drive 1 column and 1 row at a time, if this is the way you are doing it only 1 led is on at a time so only 20 ma is needed.
Well, I want to be able drive from 1 LED & all LEDs. So, how does the driver supply enough current to light all LEDs without blowing the matrix?
 

Papabravo

Joined Feb 24, 2006
16,947
Well that depends on whether driving all the LEDs can be done one row at a time for say 10 milliseconds each. Then you only need enough current to light one row or 160 millamps. So it takes 80 milliseconds to do eight rows. The effect you get will depend on the persistence of the LEDs and the similarity between the individual LEDs.
 

cmartinez

Joined Jan 17, 2007
7,455
Well that depends on whether driving all the LEDs can be done one row at a time for say 10 milliseconds each. Then you only need enough current to light one row or 160 millamps. So it takes 80 milliseconds to do eight rows. The effect you get will depend on the persistence of the LEDs and the similarity between the individual LEDs.
Papabravo is right... normally LED matrices are "strobed", meaning that only one LED is lit at a time, and when one wants to show several LEDs lit at the same time, each LED is lit in rapid succession in a repetitive cycle to give the illusion that all of them are being lit simultaneously. The drawback of doing that is that they will seem a little bit dim when compared to lighting them in a continuous way, but that's normally negligible.
 

Thread Starter

Macnerd

Joined May 22, 2014
67
Please explain the following.
This is what I don't understand. An individual LED requires, say, 20 mA. There is, for example, a common anode column 8X8 matrix. 8 LEDs per column/row X 20mA per LED = 160 mA for each column/row. Does the driver have to supply 160 mA to each column/row? But the resistance required to limit the current to 20 mA is less than the resistance required to limit the current to 160 mA. That's what confuses me. How does one supply enough current to light, in our example, a row or column 8X8 matrix, but limit the current to 20 mA for each LED? 8X8 = 64. 64X20mA = 1.28 A. Does the driver have to supply 1.28 A to each row or column? I've googled LED driver & I know that there are LED driver ICs as well as transistor drivers. I know that each LED in a matrix CAN be driven by an individual transistor driver. Is the key to provide, say 20 mA, but strobe the column or row fast enough so that 2 or more LEDs appear to be on at the same time?
 

dl324

Joined Mar 30, 2015
13,282
Hi Macnerd,

You're making it too complicated. In an 8x8 matrix, only one diode is (usually) driven at a time; this gives you maximum power and circuit efficiency. Since they're being multiplexed, you drive the single LED with a higher current to get it's average power dissipation to 34mW (using your 20mA drive current) or more. The maximum current and power dissipation specs must be followed. You need each LED to be refreshed at a minimum of 100Hz to avoid flicker.
 
Last edited:

Thread Starter

Macnerd

Joined May 22, 2014
67
So, does that mean that one should determine the resistance based on the maximum current allowed in the specifications? I have read on the 'net that the higher the current the brighter the LED, but also the shorter the life of the LED. A higher current would mean that the LED gets hot & must cool down. It also occurs to me that resistors have a variation of +/- 5 %. So, when calculating the resistance, one should err on the high side rather than the low side. I know that volts times amps equals watts but how did you arrive at 34 mW?
 

dl324

Joined Mar 30, 2015
13,282
So, does that mean that one should determine the resistance based on the maximum current allowed in the specifications?
That and the brightness you desire.
I have read on the 'net that the higher the current the brighter the LED, but also the shorter the life of the LED.
That is true. You want to make sure you don't exceed peak current and average power dissipation specs.
A higher current would mean that the LED gets hot & must cool down.
You need to consider duty factor. When you drive at DC, power dissipation is continuous. When you multiplex, LED is off most of the time.
It also occurs to me that resistors have a variation of +/- 5 %. So, when calculating the resistance, one should err on the high side rather than the low side.
5% won't make a noticeable difference in brightness. The human eye response to light is logrithmic.
I know that volts times amps equals watts but how did you arrive at 34 mW?
1.7V * 20mA = 34mW

Oh, and you can drive an entire column or row at a time, but then you need to use a current source and provide a supply sufficiently high to allow all LEDs in a column or row to be on simultaneously; so you'd need a 14-15V supply for 8 LEDs.
 

Thread Starter

Macnerd

Joined May 22, 2014
67
OK, I wish to make a slight detour & ask questions on a different but related subject. I'll probably have more questions about matrices.
I've googled constant current LED drivers & I've seen 2 different kinds - single transistor & double transistor. I've read on the 'net that transistors are temperature sensitive so that a single transistor would not make very good constant current drivers. Of the 2-transistor kind I've seen either 2 BJT transistors or a FET & a BJT. Based on the description of how the circuit works, the driver is basically a feedback loop. So, the driver isn't literally a "constant" current driver. The current goes up & down based on the voltage. I also read that there's a lot of voltage lost on the FET whatever that means. Based on my very limited knowledge of how a FET works, it gradually turns on & gradually turns off. A BJT, on the other hand, is either on or off. So, of the two 2-transistor drivers is one better than the other & why?
 

MrChips

Joined Oct 2, 2009
24,408
I don't know how you arrived at that behaviour about BJTs.

Both FETs and BJTs can be used as ON/OFF switches. They both also can be operated in the linear region to gradually turn on and off.

An FET is a voltage controlled device with high input resistance. It is controlled by a voltage difference applied between the gate and source.

A BJT is a current controlled device with low input resistance. It is controlled by a current through the base-emitter junction.
 

dl324

Joined Mar 30, 2015
13,282
OK, I wish to make a slight detour & ask questions on a different but related subject.
You should probably start a new thread for your detour. That way others will know if this thread interests them.
I've googled constant current LED drivers & I've seen 2 different kinds - single transistor & double transistor.
There are many types of constant current drivers. Post a schematic of any you have questions about.
I've read on the 'net that transistors are temperature sensitive so that a single transistor would not make very good constant current drivers.
I can't think of any electronic devices that aren't temperature sensitive. If you really need a circuit that is less sensitive to temperature, there are ways to minimize sensitivity.
Based on the description of how the circuit works, the driver is basically a feedback loop.
Some have no feedback.
So, the driver isn't literally a "constant" current driver. The current goes up & down based on the voltage.
If there's enough voltage, the current source/sink will provide the designed current; assuming there's a path for it to flow. In a current source, current is constant but voltage may vary.
I also read that there's a lot of voltage lost on the FET whatever that means.
That will be some power dissipation in the FET, but it doesn't have to be a lot. The FET has some "ON" resistance whenever it's operating.
Based on my very limited knowledge of how a FET works, it gradually turns on & gradually turns off.
FETs can also be used as switches.
A BJT, on the other hand, is either on or off.
BJTs have other modes of operation; they were invented as amplifiers to replace vacuum tubes...
So, of the two 2-transistor drivers is one better than the other & why?
All circuits have compromises. Post schematics.
 

Thread Starter

Macnerd

Joined May 22, 2014
67
The "traditional" way to drive an array of LEDs is by strobing. But is it the only way?
8 LEDs have a total of 256 ways of being on or off. The strobing way drives 2 or more rows or columns repeatedly very fast & because of the persistence of vision of the eye, 2 or more LEDs appear to be on at the same time.
I watched a YouTube video where 8 LEDs were connected to a shift register & the LEDs lit up in binary sequence from 0 to 255. I know that there are bidirectional shift registers. I suppose that the shift register can be preloaded with a value between 0 & 255 & output to the LED array. I want to be able to go from 0 to 255 or from 255 to 0 or to count upwards or downwards from a preloaded value. I also want to be able to use an Arduino & have it generate a random integer value between 0 & 255 & output it to the shift register. But I don't want to strobe the matrix. Surely there is a way to accomplish what I want to do without having to resort to strobing.
Is there?
 

takao21203

Joined Apr 28, 2012
3,702
Hi Macnerd,

You're making it too complicated. In an 8x8 matrix, only one diode is (usually) driven at a time; this gives you maximum power and circuit efficiency. Since they're being multiplexed, you drive the single LED with a higher current to get it's average power dissipation to 34mW (using your 20mA drive current) or more. The maximum current and power dissipation specs must be followed. You need each LED to be refreshed at a minimum of 100Hz to avoid flicker.
about 50 hz mulyiply phases
 

takao21203

Joined Apr 28, 2012
3,702
The "traditional" way to drive an array of LEDs is by strobing. But is it the only way?
8 LEDs have a total of 256 ways of being on or off. The strobing way drives 2 or more rows or columns repeatedly very fast & because of the persistence of vision of the eye, 2 or more LEDs appear to be on at the same time.
I watched a YouTube video where 8 LEDs were connected to a shift register & the LEDs lit up in binary sequence from 0 to 255. I know that there are bidirectional shift registers. I suppose that the shift register can be preloaded with a value between 0 & 255 & output to the LED array. I want to be able to go from 0 to 255 or from 255 to 0 or to count upwards or downwards from a preloaded value. I also want to be able to use an Arduino & have it generate a random integer value between 0 & 255 & output it to the shift register. But I don't want to strobe the matrix. Surely there is a way to accomplish what I want to do without having to resort to strobing.
Is there?
yes several

1 electron beam point scanning

segments as phases inversed

as matreix

charliplexed

serial led

external refresh drive
 

Attachments

#12

Joined Nov 30, 2010
18,223
the resistance required to limit the current to 20 mA is less than the resistance required to limit the current to 160 mA. That's what confuses me.
That is because it is wrong.
I think I picked up on a mistake that nobody else picked out.
So, if you want to run several LEDs at once, arrange the circuit (with extra transistors if necessary) to drive each LED with 0.02 amps.
 

Thread Starter

Macnerd

Joined May 22, 2014
67
electron beam point scanning?
I've considered charlieplexing. It's fine for smaller arrays, but, according to my research, it's more complicated with bigger arrays. It's necessary to switch the pins back & forth from input to output. That complicates the code. Perhaps a serial in/parallel out shift register. What's an external refresh drive? Is that different from an LED driver? Is serial LED the same as LEDs in series? I wonder about SPI or I2C. Please elaborate on "segments as phases inversed".
 
Top