8 LED analog display

Loading thread data ...

How are they independent? Do they track? Are they a frequency spectrum display?

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

This looks like a contradiction - one analog source sets 8 different brightness levels. How does it know which one you are setting? Something is not well explained yet.

--
Luhan Monat: luhanis(at)yahoo(dot)com
http://members.cox.net/berniekm
"Any sufficiently advanced magick is
indistinguishable from technology."
Reply to
Luhan Monat

You want a single analog voltage to control 8 LEDs. Do you want the LEDs to all increase simultaneously? Or, do you want them to increase sequentially with the increasing voltage?

I designed a circuit to do the second thing last year for some guy over on basics. Here is the thread, courtesy google groups:

formatting link

--
Regards,
  Bob Monsen
Reply to
Bob Monsen

Steve,

the problem, as I understand it, is to encode 8 independent analog values within one analog value. Leaving the issue of resolution and bandwidth aside for the moment, you have a few basic options:

a) Drop the requirement to use a single, Labview driven DAC output. Use any digital I/O port (RS232,Parallel,USB) to talk to a PWM chip or a microcontroller. Personally, I would use a programmable logic IC (e.g. Coolrunner) to implement an 8 channel PWM and interface it to serial, parallel or USB ports.

b) Go digital. If it's got to be your analog channel, just drive it at > +-3V with a slow RS232 emulation and hook it to a microcontroller which does the PWM for you. Otherwise, see a)

c) Frequency multiplexing. You generate an analog signal, which is the sum of 8 discrete frequencies with variable amplitudes. You then build a bank of 8 band pass filters + AM demodulators which gives you 8 analog outputs. The best interface for this would be a sound card.

d) Time multiplexing. Lets assume you can set up a clocking scheme (e.g. 5V=clock pulse) It would be just about possible to use discrete circuitry (monoflops and sample+hold) to latch the analog values after the 'clock' and drive a PWM or current control circuit for the LEDs.

e) Value multiplexing. Think binary. If the value is represented as an 8-digit number, each digit could 'drive' one LED. As a practical implementation you'll need to run your analog value through an A/D converter and extract the individual channels digitally, drive PWM, etc. It will probably flicker interestingly during the updates. You won't get much more than 2-3 levels of brightness out of this.

Kind regards,

Iwo

Reply to
Iwo Mergler

Just off the top of my head.. How about connecting each led to a window comparator , setting its "on" voltage. Then by driving all the window comparator ccts you can select the led you want on by setting the output voltage , and maybe some sort of pwm scheme to set the brightness. With 8 led's you may run into troubles getting enough brightness this way , without flicker.Just a thought. Cheers Rob

Reply to
seegoon99

Probably your best bet is to not drive the LED's directly with a voltage, but with a variable duty-cycle digital waveform. If you want an ADC in the loop, the ADC output could be connected to a circuit which translates the Voltage into a PWM waveform.

The other option would be to use a current output ADC, or perform a Voltage to current conversion.

Driving the LED's directly with a Voltage will not work.

Good search terms might be "PWM LED drive".

--Mac

Reply to
Mac

Ok, how about this.

Send out 8 analog pulses with zero voltage in between and a larget time gap between each set of 8. Capture each voltage with an A/D in the micro. Meanwhile, continue doing Pulse Width Modulation on each of the

8 LEDs to control brightness.

Alternatively, give up, you 'cant get there from here'. ;{

--
Luhan Monat: luhanis(at)yahoo(dot)com
http://members.cox.net/berniekm
"Any sufficiently advanced magick is
indistinguishable from technology."
Reply to
Luhan Monat

From where I sit, it's already a little late to be worrying about who's laughing at whom here.

First, you have one unspecified analog signal, with which you want to independently control the brightness of eight individual LEDs, which means somehow figuring out, from one instantaneous voltage, two or three things: Which LED, and How Bright. OK, just the two. :-/

Then, you come up with "4 times less than human perceptual detection" - what does that even mean?

So, please drop the worries about being laughed at and explain, again, two things: What's this "human perceptual detection" that you want to do something 4 times less than, and what exactly is the goal that you're afraid to explain?

As far as answers to the closest description of the problem itself that I've read so far, maybe look into delta-sigma or whatever they did to get 56 KBPS down a 3 KHz analog channel, i.e., modems.

'DAQ' means "Data AcQuisition", right?

Good Luck! Rich

Reply to
Rich Grise

Consider another approach, when you are more into software: Philips has some I2C bus-controler PCA9564 and I2C 8-bit LED dimmer PCA9531, which can control 8 LEDs. You only need a 3.3V supply. You can get a (far out) Demo-board for free if you write an Email to snipped-for-privacy@philips.com "please send me the LED dimmer demo board"

--
ciao Ban
Bordighera, Italy
Reply to
Ban

hi everyone, any advice and recomendations appreciated.

From a single channel analog output of a DAQ card, I need to independently drive the continous brightness of 8 high powered LED's. Before I get cracking with my not very decent electronic design skills, I thought I would check with the experts on design direction.

thanks Steve

Reply to
SteveW

I need to use the range of the single DAQ output, to be able to code the brightness from 0 to maximum intensity, of each LED independently. I'll use Labview to provide a control voltage, to be the source of the designed circuit. This voltage value, needs to encode a 'brightness level' for every single LED, so that any combination of 0 to max of each LED individually may be continously set.

I'm not very competent at electronic design, so thought I would ask you guys first to point me in the correct directions for further research :)

I need the LED's to be very bright, so they will need to be driven by a high power source. The trick is to have each LED's brightness to be accurately controlled and the same dynamic range. Basically, I need a controlable 8 LED 'display monitor' with the ability for very high luminosity in a continous time domain - all set by a single voltage source.

Sorry, did I do better explaining that time? :) thanks for the interest, regards Steve

Reply to
SteveW

The problem, in mathematical terms, is that you want to have 8 independent numbers encoded into a single number.

You can use discrete levels. However, if you want the changes in intensity to appear continuous, you'll need lots of levels for each LED. Each discrete level will require a 'bit'. Say you want 32 levels. Then, you will need 32*8=256 bits of information encoded into the voltage. That isn't really going to be possible unless you want to spend lots of money on it.

Thus, you can't really do this in any continuous way unless you use time, and signal the information somehow. Thus, you could use some kind of single wire coding, like manchester code, to signal the information using your single voltage. That would require logic on both sides to encode and decode the signal.

Another way would be to use 8 different ranges of frequencies, each of which can then be assigned to an LED. A low frequency in the band corresponds to a dim LED, whereas a high frequency corresponds to a bright LED. This is like radio, in which different bands can have different intensities of output which won't interfere with one another. You can use a bandpass filter and an F/V converter for each LED, or run the signal into a DSP, and perform an FFT on it. Frequencies will add, so the 8 independent sine waves corresponding to the desired intensities of the LEDs can be manufactured separately and added.

However, I'm guessing the real problem you are trying to solve can be handled in any number of far simpler ways, including adding a few wires. Perhaps a more complete description of the problem is in order.

--
Regards,
  Bob Monsen
Reply to
Bob Monsen

Correction, you'll need 5 bits for 32 levels, of course. However, that still means 40 bits, which is prohibitive.

Reply to
Bob Monsen

thanks guys, for all your responses...

Luhan wrote: >This looks like a contradiction - one analog source sets 8 different >brightness levels. How does it know which one you are setting? >Something is not well explained yet.

Yes, this is the essence to the problem. I guess I need to code the signal (in software), like a multiplexor and then somehow demux the signal to drive the LEDs. In this way, I could carry the information of the brightness level of each LED in the one analog source. The problem is that although I'm keen to learn, I don't have the knowledge, so was therefore hoping for some tips and hints.

Mac wrote: >Probably your best bet is to not drive the LED's directly with a >voltage, >but with a variable duty-cycle digital waveform. If you want an ADC in >the loop, the ADC output could be connected to a circuit which >translates >the Voltage into a PWM waveform. >The other option would be to use a current output ADC, or perform a >Voltage to current conversion. >Driving the LED's directly with a Voltage will not work. >Good search terms might be "PWM LED drive".

thanks, I'll look into the PWM waveforms for information transmission, and also at the current controlled options - cheers

Bob wrote: >You want a single analog voltage to control 8 LEDs. Do you want the >LEDs to all increase simultaneously? Or, do you want them to increase >sequentially with the increasing voltage?

nope, not quite, but thanks for the link anyway. I need independent control of each of the LED brightness levels, so I need to encode this in the voltage source. So not simultaneous, and not sequential!

In software - I set a brightness level of each LED, 1 to 8 -> send this along a single analog voltage output DAQ channel (mux'd version??) -> circuit to transform this into the correct brightness level for each LED (demuxed??, high powered, current driven??)

thanks again everyone, time for me to do some more studying :) Looks like I'll be learning a bit to get this done! - though it seems it will be fun and interesting. Please let me know of any more ideas.

regards Steve

Reply to
SteveW

thanks Iwo, I'll study up on this now. This is exactly what I was after, expert opinion so I didn't spend too long chasing down a bad design path.

regards, SteveW

Reply to
SteveW

yep .. thanks heaps guys, you really have saved me from trials leading to many an error :)

one of the requirements for the system would be very, very minimal flicker, (about 4 times less than human perceptual detection - I could explain, but you would just laugh at me!), so all this advice has highlighted the difficulties and at least provided designs not to try and implement.

I'll have another think about things, and try and battle through some digital->microcontroller->LED approaches. I'll let you know of any successes.

thanks again for all your responses, regards Steve

Reply to
SteveW

Take a look at the packet radio scheme, IIUIC it more often than not uses the sound card for output. Since there are 8 LEDs and 8 levels you can get away with one byte for each LED. For example, high nibble for address and low nibble for value. How to decode it at the receiving end is another matter. Hmmm, a PIC?

- YD.

--
Remove HAT if replying by mail.
Reply to
YD

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.