Multiplexing LEDs - calculating resistor value

Hi all,

My previous post about speeding up multiplexing resulted in a display with

8x48 LEDs. As I suggested and read, the LEDs are becomming less bright when more than 2 LEDs are on in a matrx of 8x48 >=.

Can anyone help me to calculate the resistor value I need to get bright LEDs. Or, how can I caclulate this? Now I'm using a 100R per column which is probably to much.

Here is a small part of the circuit to show the current limiting resistor of 100R.

formatting link

Thanks Greetings

Reply to
roxlu
Loading thread data ...

Hi Spehro,

Thanks for your reply, but thats what I did, and its not giving me good results. I calculated the value like this: 5v - 1.7v (led) - 1.2 (2x0.6 or the transistors) = 2.1 v Now I'm using a 100R, so thats around 2.1 / 100 = 21mA. Though they are still not bright, which is probably due to the 'refresh rate'.

Greetings

Reply to
roxlu

One thing that comes to mind is that you should be able to drive any number of 'columns' at once, but only one 'row.' If you are enabling two or more rows at once for a given column, then there is a problem. There are other things I might arrange differently, but it sounds as though this may be an issue for now.

Jon

Reply to
Jonathan Kirwan

Arrange it so that 48 LEDs are on at once (48 columns and 8 rows). You want the resistor to pass about 8 times the average current you would like for the LEDs. eg. if they are reasonably bright at 3mA, you want about 24mA through the resistor. Just use G.S. Ohm's law, from the 5V supply minus the LED forward drop (at 24mA, not 3mA) minus two Vce(sat) drops.

Best regards, Spehro Pefhany

--
"it\'s the network..."                          "The Journey is the reward"
speff@interlog.com             Info for manufacturers: http://www.trexon.com
Embedded software/hardware/analog  Info for designers:  http://www.speff.com
Reply to
Spehro Pefhany

P.S. Each of you row drivers is going to have to handle 48 * 24mA =

1.2A in the example I gave above (at 1/8 duty cycle). That will also be the total maximum current draw of the array. Your PNP BJTs will probably not be saturated at that current without a lot more base current than ~4mA. Or just use 8 P-channel MOSFETs for the source drivers.

Best regards, Spehro Pefhany

--
"it\'s the network..."                          "The Journey is the reward"
speff@interlog.com             Info for manufacturers: http://www.trexon.com
Embedded software/hardware/analog  Info for designers:  http://www.speff.com
Reply to
Spehro Pefhany

Yes, but didn't he also say "becoming less bright?" Sizing that 100 ohm resistor in the collector leg assuming 8 LED rows being on will brighten the case where only one LED row is used, yes?

Jon

Reply to
Jonathan Kirwan

Above the (visual) fusion frequency, brightness is mostly a function of average current. See my PS. BTW, 1.7V sounds a bit low for the LED, even for red, but 0.6V is high for Vce(sat) if the transistor is actually saturated.

Best regards, Spehro Pefhany

--
"it\'s the network..."                          "The Journey is the reward"
speff@interlog.com             Info for manufacturers: http://www.trexon.com
Embedded software/hardware/analog  Info for designers:  http://www.speff.com
Reply to
Spehro Pefhany

Oke thanx, I measured the 1.7, and the 0.6 is told to me. Someone told me that when a column is on 1/48 of the time, the current which is pushed through the LED must be 48 times the normal value.. well.. this can't be used in this case.. But what if I push 50mA trhough the LEDs will that be oke?

Greetings

Reply to
roxlu

formatting link

formatting link

I suggest 1/8 duty cycle not 1/48.

Maybe. Check the specs. Provided the mux doesn't stop for too long. Also, each LED will only have an average of < 1mA current, so it may not be bright enough.

Best regards, Spehro Pefhany

--
"it\'s the network..."                          "The Journey is the reward"
speff@interlog.com             Info for manufacturers: http://www.trexon.com
Embedded software/hardware/analog  Info for designers:  http://www.speff.com
Reply to
Spehro Pefhany

--- It depends on the LEDs.

There should be some sort of pulse rating given on the data sheet, and you'll need a separate resistor for each LED if you intend for them not to interact with each other.

Also, you'd be able to get full apparent brightness out of the LEDs if you interchanged rows and columns. That is, if you strobed the rows instead of the columns. That way you'd only have to increase the current to the LEDs 8 times since you'd be multiplexing them 8:1

The down side is that if you're using 20mA LEDs which can take 160mA for 1/8 of the time, your row drivers would have to be able to switch 160mA * 48 lamps ~ 8 amperes. That's not bad at all and if you use N channel MOSFETs as the row witches and get some devices with lowish Rds(on) 100mV, say, then they'll only be dissipating

P = EIT = 0.1V * 7.68A * 0.125 = 0.096 watts,

so they won't even get warm.

If you kept your PNP's for column drivers they'd only have to pass

160mA, so with a saturation voltage somewhere around 0.3V they'd dissipate 48 milliwatts while they were on, but they'd only be on 1/48th of the time, so they'd really only be dissipating a milliwatt!

If you're using a 5V supply, calculate the LED resistors like this:

Vsupply - Vce(sat) - (Rds(on)* Iled) - Vled R = --------------------------------------------- Iled

5V - 0.3V - 0.016V - 1.2V = ------------------------------ = 21.7 ohms 0.16A

The closest standard 5% value is 22 ohms, so that's what I'd use.

The resistor would have to dissipate:

P = I²RT = 0.16A² * 22R * 0.125 = 0.07 watts,

so a 1/2 watt resistor would be fine.

-- John Fields Professional Circuit Designer

Reply to
John Fields

I have found many multiplexed led displays in public have a way too low update frequency. Which cause headache all sorts of annoyances..

Reply to
pbdelete

--
Oops...

If you do 8:1 multiplexing (see below) you\'ll only need one resistor
per column since there\'ll never be more than one LED on, per column,
at any given time, and its power dissipation (since it could be on
100% of the time) will be:


     P = I²R = 0.16A² * 22R = 0.56 watts, 

so a 22 ohm 1 watt resistor would be a good choice
Reply to
John Fields

It sounds like you are still driving the matrix wrong. With the circuit you linked only one bit in the row shift register should be on so only one LED connected to that 100R resistor will be on at a time and that LED gets the whole 21 mA.

When you start driving the matrix the right way remember all 48 LEDs could be on and the row drivers will have to source just over 1 Amp which the transistors you chose may not be capable of.

Reply to
nospam

--
Aarrgghhhhh!!!

Lowish Rds(on) 100 milli _ohms_,


     P = I²RT = 7.68A² * 0.1R * 0.125 = 0.737 watts,

so it\'ll get warm enough to need a heat sink.
Reply to
John Fields

So, I should go fo rthe 22ohms when using 8x48? And if so, can I use simple NPN transistors to sink to GND, like this:

formatting link

Greetings.

Reply to
roxlu

--- I don't know what you mean when you say "8x48" but no, you can only use the 22 ohms if you strobe the rows.

---

--- Your schematic makes no sense to me. It seems you're going about the whole thing backwards.

In my opinion you should send, and latch, 48 bits onto the columns and then strobe the row you're on to make all the LEDs on that row light up.

Then, 1/8th of a second later, do the same thing on the next row, and on and on...

But... 1/8th of a second will cause flicker, so you'll need to increase the refresh rate of the display to where it looks continuous. Something faster than 30HZ will work.

-- John Fields Professional Circuit Designer

Reply to
John Fields

Bingo. It seemed wrong at the outset, sounding as though the row values were latched and the columns were scanned -- 'row' and 'column' as taking their meaning from the schematic, I mean.

Yes.

I prefer something faster than 47Hz, as that is the moment it gets hard for me to notice (without moving my head around.)

Jon

Reply to
Jonathan Kirwan

If there's motion (including head motion) or vibration, a couple of hundred Hz would be better. It's still no skin off the bandwidth of most micros (assuming you're not doing silly stuff like writing ISRs in inefficient HLLs). Get in there, save context, shove the data out, clean up and exit, real fast like.

Best regards, Spehro Pefhany

--
"it\'s the network..."                          "The Journey is the reward"
speff@interlog.com             Info for manufacturers: http://www.trexon.com
Embedded software/hardware/analog  Info for designers:  http://www.speff.com
Reply to
Spehro Pefhany

Agreed. I played around with these rates (very simple to do) using a proto board and with my son helping out. We each could increment or decrement the rate to see what we each thought about the appearances. My own place of comfort was above 47Hz, his was more like 53Hz I think. When we moved our heads around, though, it had to be well above 85Hz (we didn't try and lock down quantities for head motion with as much accuracy because it was harder for us to judge just how fast we were moving our heads in those experiments, so we judged an exact number to not be so useful there unless we could calibrate our head motion -- thus a rough figure for general quality sufficed.)

Jon

Reply to
Jonathan Kirwan

Having written code to drive arrays of up to 9600 bi-color LEDs a few hundred Hz would have taken a lot of skin off the processor used. A 62.5Hz refresh rate which required the generation and clocking of 2 600kb/s data streams took 90% of the skin it had.

Also many of the display 'effects' particularly the very common sideways scrolling must be synchronised to the display multiplex so if you multiplex too fast it scrolls too fast. Scrolling sideways at 62.5 LEDs per second is already a bit fast for small fonts.

Reply to
nospam

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.