Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

Multiplexing - Brightness

Status
Not open for further replies.

DanskEl

New Member
Hello,

I am new to this forum and this would be my first post. At my school we're in the midst of our exam project and the group I am a part of ran into a problem this tuesday.

First, a little introduction to the project. We're making a laser-tag like game which consists of a weapon, a vest and a command central. The weapon is simply an IR diode that emits a "shot". The vest receives this signal and holds how many lives that player has. It then transmits this in a sequence we made with radio signals. All that is working perfectly. The command central then gathers these signals and is supposed to output them to a status-display consisting of 10 7-segment CC displays. This is where the problem is.

When multiplexing the 10 7-segments from a PIC16F819 through a 4511 decoder all the displays are very dim. I've been reading through the forums for a solution but it seems it might be a problem to run 10 from 1 PIC as they are turned off for a long time before getting relit. A piece of the diagram is here:
**broken link removed**

The displays continue up with the same structure with the transistors being what controls which display is turned on.

We've tried different setups but they've all resulted in small bugs, I would guess because they're running too slow. The PIC is operating at 4MHz.

If you need any other information to help me out here, I'd be more than happy to fill you in, after all I am new to asking help for such things through the internet :)
 
Three options I can think of

  1. Insert a latch between the uC segment outputs and each of the 7 segment CC displays (ten latches total). Ground the cathodes of each display. Use the U11 outputs to latch the corresonding latch. Size the power supply accordingly.
  2. Buffer the uC segment outputs to provide a higher voltage and peak current for the segments. Make sure the maximum pulse current rating and the average current rating of the segments is not exceeded. Size the power supply(s) accordingly.
  3. Check into high-intensity 7-segment displays, or use an integrated display module.
 
Last edited:
Is the PIC constantly switching between the various 7 segment displays ? And if it has to do something else, are the seven segments turned off while the PIC handles another task ? If so, then a suggestion would be to remove your resistors that to to the seven segment displays. This will create a brighter illumination. However, there are some that say don't do this. And I believe that you the life expectancy of the component decreases (by how much, i dont know). But this is only if the pic is constantly switching between 7segment displays and if the PIC needs to do something else, the 7 segments are turned off.
 
Last edited:
latching shift registers, sounds like a good idea to me.
 
Latches would give you the best result but you may be able to get increased brightness by increasing the current. The 4011 can only supply 25mA per segment, combined with a 10% duty cycle your LEDs are getting 2.5mA - no wonder they are dim. I would try using transistors to drive the anodes and increase the segment current to the maximum pulsed current allowed. The pulsed current is normally many times greater than the constant current - check the data sheet.

Mike.
 
You don't need to change much - if everything's working at the moment (albeit dimly), just do the following:
- buffer each of the 4511 outputs with a single NPN (e.g. bc547): 4511 output to NPN base, VCC to NPN collector; the NPN emitter is the new buffered output.
- reduce the resistors to the LED anodes. For VCC=5V, the resistor voltage is 5-Vled-.7=2.3, so for 20mA average (for 10LEDs), use R = 12ohms. This gives a peak current of 200mA per LED, so make sure this is within the manufacturer's specs.

I see there is no series resistor to the base of the digit CC transistors: you should have limiting resistors there also.
 
Last edited:
You don't need to change much - if everything's working at the moment (albeit dimly), just do the following:
- buffer each of the 4511 outputs with a single NPN (e.g. bc547): 4511 output to NPN base, VCC to NPN collector; the NPN emitter is the new buffered output.
- reduce the resistors to the LED anodes. For VCC=5V, the resistor voltage is 5-Vled-.7=2.3, so for 20mA average (for 10LEDs), use R = 12ohms. This gives a peak current of 200mA per LED, so make sure this is within the manufacturer's specs.

I see there is no series resistor to the base of the digit CC transistors: you should have limiting resistors there also.

I will have the oppertunity to work further on this project tomorrow, I think I'll try this idea out.

[EDIT] Misread something, the resistors have been added - apparantly I uploaded an outdated diagram, sorry.

Thanks for all the replies, I will reply back with my results, hopefully just one of them will work. I know we've tried to amplify the current with transistors but that resultet in some weird results where the multiplexing definitely didn't work. Right now the PIC programming is multiplexing most of the time until it receives a "start" signal - then it calculates the numbers used for multiplexing. However we have no problem with it flashing when it updates :)
 
Last edited:
I'm gonna guess 200ma's is a bit much to be pushing through an LED keep in mind also overdriving an LED like this destroys it's efficiency, and may shorten it's life even if it works.
 
I'm gonna guess 200ma's is a bit much to be pushing through an LED keep in mind also overdriving an LED like this destroys it's efficiency, and may shorten it's life even if it works.
You might be right. However we've tried so many different things, mind you we're not experts, and the only thing I am certain will work would be to use 10 4511, but that is just excessive.
 
If it works is it really excessive?
One other option not sure if anyone else mentioned is increasing the clock speed, or polishing your code a bit, faster loops will result in more on time.
 
The pulsed current rating of most SSDs is in the 150-250 mA range and so shouldn't shorten their life span. Clicky.

Mike.
 
If it works is it really excessive?
One other option not sure if anyone else mentioned is increasing the clock speed, or polishing your code a bit, faster loops will result in more on time.

Perhaps it could be perfected. Using 10 new CMOS chips just seems stupid when there might be another way. The latching shift registers one mentioned, what are they exactly? I'm not sure I know of them. Could you mention some CMOS chips that are latching shift registers?
 
I'm gonna guess 200ma's is a bit much to be pushing through an LED keep in mind also overdriving an LED like this destroys it's efficiency, and may shorten it's life even if it works.

No, it's perfectly normal - pulsing 10 displays at 200mA gives an average of 20mA, which is pretty well spot on for the displays.

IR LED's in remote controls are pulses at 1 amp upwards with no ill effects - it's all down to 'average' current.
 
Sir you add 7 NPN transistors to the output of the 4511 (via Base resisters) & give Emitters as outputs to the SSDs & Collectors will goto VDD via separate current limiters.
Ah, okay, thanks.

If anyone else has some input please share it :) As I mentioned earlier I will get to try these ideas out tomorrow at class.
 
It's not JUST average current Nigel, you pulse too much current through a P/N junction the junction will vaporize outright, the heat can't dissipate fast enough, even if the average is within it's tolerances. But I didn't know remotes used 1 amp pulses. I've always been afraid to do anything over 200ma's for any LED, but I believe ya =) If the transistors can handle it it's the easiest sollution.

Latching shift registers is the other, but that requires more IC's. They're pretty simple Dan, you shift bits into the registers one at a time via a clock line, and then when you trigger a certain I/O line those bits are all pushed out onto the IC So you can update a theoretically infinite number of I/O lines by chaining them together, it's limited only by the speed you can clock the serial data in. I dug around on Digikey and found this one.
https://www.electro-tech-online.com/custompdfs/2009/03/397.pdf
But that's just the first one I found.
For 70 elements (You're doing 10 7 segments right?) you'd need 9 of them.
Which would put you out all of 5 bucks total.
 
It's not JUST average current Nigel, you pulse too much current through a P/N junction the junction will vaporize outright, the heat can't dissipate fast enough, even if the average is within it's tolerances. But I didn't know remotes used 1 amp pulses. I've always been afraid to do anything over 200ma's for any LED, but I believe ya =) If the transistors can handle it it's the easiest sollution.

Yes, I'm aware of how LED's die :D

Perhaps I'd better explain further - you must use SHORT pulses - 10 seconds ON and 90 seconds OFF wouldn't do it much good :p

But for a remote control you're sending short bursts of 38KHz - so ON for 26uS, then OFF for 26uS - repeat this five times or so, then have a longer 'rest' with it OFF for 100uS-200uS.

It's all about heat - letting it cool down between pulses stops it getting hot and dying - which is why you can't use long pulse times.

For multiplexing displays it has to be done fast enough for it to look continuous, so increasing the current by the number of displays isn't a problem, as the pulse time is short, and the rest time long. Automatically as the pulse current goes up (becasue you're adding more displays), the pulse time goes down, and the rest time increases - keeping the heating at the same level.
 
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top