From: Charlie E. on
Hi Guys,
Ok, going to put myself in harms way, and ask for a little design
advice. I have been working on this project for a while now, and it
has gone through several iterations, and I keep having the same
problem!

First, the project: I am designing a small color reader for the
visually impaired. Really simple operation - put it against the
object you want to tell the color of, and it will say "RED" or
whatever the color is. Sensor is simply an RGB LED and a
phototransistor, buffered by some amps, and then digitized by a PIC24.
So, what's the problem? I can't get a stable reading. In normal
operation, this thing will run for about two seconds, and then be
turned off. To test, however, I run it in debug mode for hours. When
I first turn it on, and calibrate it to a white sample, I will get one
set of calibrations. Let it sit for about two minutes, and it starts
to drift. In about half an hour, I will have readings totally off the
scale.

So, why am I baring my soul to ya'll? I need your help identifying
where the gain drift is coming from, and some ideas on how to control
them. I have the schematic here:

http://edmondsonengineering.com/Documents/Rainbow%20color%20Reader%20Schematic.pdf

Basic description - MCU turns on an LED. The phototransistor is first
buffered by a non-inverting opamp with a gain of 2, and the signal is
split. Part goes directly to a PGA where it is first attenuated, and
then the PGA boosts it up. This gives me a calibration control to
deal with difference in output of the LEDs. The original and PGA
signal are added, and this is then applied to another non-inverting
opamp with a gain of 2. I also have one feed before this opamp to an
ADC input on the PIC.

Problems I have already solved:
First, each LED has a different output level. Red needs a gain of
around 2, BLUE a gain of around 5, and GREEN a gain of about 7. The
PGA was added to give me an adjustable gain from around 2 to 14, with
the two different taps into the separate input channels of the PGA.
This gives me 16 different gain levels to play with. Using the tap to
the second ADC channel, it actually gives me 32 different levels.

Right now, RED uses this lower gain channel, and is steady as a rock.
Part of this may be that my VCC is 3.3 volts, and only RED has a
forward voltage below this. Both GREEN and BLUE have forward voltages
of 3.4 volts.

So, potential problems? could it be that repeated use warms up the
GREEN and BLUE LEDs so that they become more efficient? Could the
power supply drift higher as it warms up? Could the opamps drift with
slight changes in temperature? Any advice ya'll can give will be most
appreciated.

Thanks,
Charlie
From: Jim Thompson on
On Mon, 01 Mar 2010 08:54:53 -0800, Charlie E. <edmondson(a)ieee.org>
wrote:

>Hi Guys,
>Ok, going to put myself in harms way, and ask for a little design
>advice. I have been working on this project for a while now, and it
>has gone through several iterations, and I keep having the same
>problem!
>
>First, the project: I am designing a small color reader for the
>visually impaired. Really simple operation - put it against the
>object you want to tell the color of, and it will say "RED" or
>whatever the color is. Sensor is simply an RGB LED and a
>phototransistor, buffered by some amps, and then digitized by a PIC24.
>So, what's the problem? I can't get a stable reading. In normal
>operation, this thing will run for about two seconds, and then be
>turned off. To test, however, I run it in debug mode for hours. When
>I first turn it on, and calibrate it to a white sample, I will get one
>set of calibrations. Let it sit for about two minutes, and it starts
>to drift. In about half an hour, I will have readings totally off the
>scale.
>
>So, why am I baring my soul to ya'll? I need your help identifying
>where the gain drift is coming from, and some ideas on how to control
>them. I have the schematic here:
>
>http://edmondsonengineering.com/Documents/Rainbow%20color%20Reader%20Schematic.pdf
>
>Basic description - MCU turns on an LED. The phototransistor is first
>buffered by a non-inverting opamp with a gain of 2, and the signal is
>split. Part goes directly to a PGA where it is first attenuated, and
>then the PGA boosts it up. This gives me a calibration control to
>deal with difference in output of the LEDs. The original and PGA
>signal are added, and this is then applied to another non-inverting
>opamp with a gain of 2. I also have one feed before this opamp to an
>ADC input on the PIC.
>
>Problems I have already solved:
>First, each LED has a different output level. Red needs a gain of
>around 2, BLUE a gain of around 5, and GREEN a gain of about 7. The
>PGA was added to give me an adjustable gain from around 2 to 14, with
>the two different taps into the separate input channels of the PGA.
>This gives me 16 different gain levels to play with. Using the tap to
>the second ADC channel, it actually gives me 32 different levels.
>
>Right now, RED uses this lower gain channel, and is steady as a rock.
>Part of this may be that my VCC is 3.3 volts, and only RED has a
>forward voltage below this. Both GREEN and BLUE have forward voltages
>of 3.4 volts.
>
>So, potential problems? could it be that repeated use warms up the
>GREEN and BLUE LEDs so that they become more efficient? Could the
>power supply drift higher as it warms up? Could the opamps drift with
>slight changes in temperature? Any advice ya'll can give will be most
>appreciated.
>
>Thanks,
>Charlie

Ewwwwh! Red and blue lines blow my eyes away :-(

Sallen-Key Filters ?:-(

...Jim Thompson
--
| James E.Thompson, CTO | mens |
| Analog Innovations, Inc. | et |
| Analog/Mixed-Signal ASIC's and Discrete Systems | manus |
| Phoenix, Arizona 85048 Skype: Contacts Only | |
| Voice:(480)460-2350 Fax: Available upon request | Brass Rat |
| E-mail Icon at http://www.analog-innovations.com | 1962 |

I love to cook with wine. Sometimes I even put it in the food.
From: Jim Thompson on
On Mon, 01 Mar 2010 08:54:53 -0800, Charlie E. <edmondson(a)ieee.org>
wrote:

>Hi Guys,
>Ok, going to put myself in harms way, and ask for a little design
>advice. I have been working on this project for a while now, and it
>has gone through several iterations, and I keep having the same
>problem!
>
>First, the project: I am designing a small color reader for the
>visually impaired. Really simple operation - put it against the
>object you want to tell the color of, and it will say "RED" or
>whatever the color is. Sensor is simply an RGB LED and a
>phototransistor, buffered by some amps, and then digitized by a PIC24.
>So, what's the problem? I can't get a stable reading. In normal
>operation, this thing will run for about two seconds, and then be
>turned off. To test, however, I run it in debug mode for hours. When
>I first turn it on, and calibrate it to a white sample, I will get one
>set of calibrations. Let it sit for about two minutes, and it starts
>to drift. In about half an hour, I will have readings totally off the
>scale.
>
>So, why am I baring my soul to ya'll? I need your help identifying
>where the gain drift is coming from, and some ideas on how to control
>them. I have the schematic here:
>
>http://edmondsonengineering.com/Documents/Rainbow%20color%20Reader%20Schematic.pdf
>
>Basic description - MCU turns on an LED. The phototransistor is first
>buffered by a non-inverting opamp with a gain of 2, and the signal is
>split. Part goes directly to a PGA where it is first attenuated, and
>then the PGA boosts it up. This gives me a calibration control to
>deal with difference in output of the LEDs. The original and PGA
>signal are added, and this is then applied to another non-inverting
>opamp with a gain of 2. I also have one feed before this opamp to an
>ADC input on the PIC.
>
>Problems I have already solved:
>First, each LED has a different output level. Red needs a gain of
>around 2, BLUE a gain of around 5, and GREEN a gain of about 7. The
>PGA was added to give me an adjustable gain from around 2 to 14, with
>the two different taps into the separate input channels of the PGA.
>This gives me 16 different gain levels to play with. Using the tap to
>the second ADC channel, it actually gives me 32 different levels.
>
>Right now, RED uses this lower gain channel, and is steady as a rock.
>Part of this may be that my VCC is 3.3 volts, and only RED has a
>forward voltage below this. Both GREEN and BLUE have forward voltages
>of 3.4 volts.
>
>So, potential problems? could it be that repeated use warms up the
>GREEN and BLUE LEDs so that they become more efficient? Could the
>power supply drift higher as it warms up? Could the opamps drift with
>slight changes in temperature? Any advice ya'll can give will be most
>appreciated.
>
>Thanks,
>Charlie

What keeps the LED's at their _constant_ current?

...Jim Thompson
--
| James E.Thompson, CTO | mens |
| Analog Innovations, Inc. | et |
| Analog/Mixed-Signal ASIC's and Discrete Systems | manus |
| Phoenix, Arizona 85048 Skype: Contacts Only | |
| Voice:(480)460-2350 Fax: Available upon request | Brass Rat |
| E-mail Icon at http://www.analog-innovations.com | 1962 |

I love to cook with wine. Sometimes I even put it in the food.
From: Charlie E. on
On Mon, 01 Mar 2010 10:25:21 -0700, Jim Thompson
<To-Email-Use-The-Envelope-Icon(a)My-Web-Site.com> wrote:

>On Mon, 01 Mar 2010 08:54:53 -0800, Charlie E. <edmondson(a)ieee.org>
>wrote:
>
>>Hi Guys,
>>Ok, going to put myself in harms way, and ask for a little design
>>advice. I have been working on this project for a while now, and it
>>has gone through several iterations, and I keep having the same
>>problem!
>>
>>First, the project: I am designing a small color reader for the
>>visually impaired. Really simple operation - put it against the
>>object you want to tell the color of, and it will say "RED" or
>>whatever the color is. Sensor is simply an RGB LED and a
>>phototransistor, buffered by some amps, and then digitized by a PIC24.
>>So, what's the problem? I can't get a stable reading. In normal
>>operation, this thing will run for about two seconds, and then be
>>turned off. To test, however, I run it in debug mode for hours. When
>>I first turn it on, and calibrate it to a white sample, I will get one
>>set of calibrations. Let it sit for about two minutes, and it starts
>>to drift. In about half an hour, I will have readings totally off the
>>scale.
>>
>>So, why am I baring my soul to ya'll? I need your help identifying
>>where the gain drift is coming from, and some ideas on how to control
>>them. I have the schematic here:
>>
>>http://edmondsonengineering.com/Documents/Rainbow%20color%20Reader%20Schematic.pdf
>>
>>Basic description - MCU turns on an LED. The phototransistor is first
>>buffered by a non-inverting opamp with a gain of 2, and the signal is
>>split. Part goes directly to a PGA where it is first attenuated, and
>>then the PGA boosts it up. This gives me a calibration control to
>>deal with difference in output of the LEDs. The original and PGA
>>signal are added, and this is then applied to another non-inverting
>>opamp with a gain of 2. I also have one feed before this opamp to an
>>ADC input on the PIC.
>>
>>Problems I have already solved:
>>First, each LED has a different output level. Red needs a gain of
>>around 2, BLUE a gain of around 5, and GREEN a gain of about 7. The
>>PGA was added to give me an adjustable gain from around 2 to 14, with
>>the two different taps into the separate input channels of the PGA.
>>This gives me 16 different gain levels to play with. Using the tap to
>>the second ADC channel, it actually gives me 32 different levels.
>>
>>Right now, RED uses this lower gain channel, and is steady as a rock.
>>Part of this may be that my VCC is 3.3 volts, and only RED has a
>>forward voltage below this. Both GREEN and BLUE have forward voltages
>>of 3.4 volts.
>>
>>So, potential problems? could it be that repeated use warms up the
>>GREEN and BLUE LEDs so that they become more efficient? Could the
>>power supply drift higher as it warms up? Could the opamps drift with
>>slight changes in temperature? Any advice ya'll can give will be most
>>appreciated.
>>
>>Thanks,
>>Charlie
>
>What keeps the LED's at their _constant_ current?
>
> ...Jim Thompson

Hi Jim,
Basically, it is whatever the PIC outputs will put out. They are
rated at 18mA, but I suspect that they are putting out a whole lot
less...

Charlie
From: Joerg on
Charlie E. wrote:
> Hi Guys,
> Ok, going to put myself in harms way, and ask for a little design
> advice. I have been working on this project for a while now, and it
> has gone through several iterations, and I keep having the same
> problem!
>
> First, the project: I am designing a small color reader for the
> visually impaired. Really simple operation - put it against the
> object you want to tell the color of, and it will say "RED" or
> whatever the color is. Sensor is simply an RGB LED and a
> phototransistor, buffered by some amps, and then digitized by a PIC24.
> So, what's the problem? I can't get a stable reading. In normal
> operation, this thing will run for about two seconds, and then be
> turned off. To test, however, I run it in debug mode for hours. When
> I first turn it on, and calibrate it to a white sample, I will get one
> set of calibrations. Let it sit for about two minutes, and it starts
> to drift. In about half an hour, I will have readings totally off the
> scale.
>
> So, why am I baring my soul to ya'll? I need your help identifying
> where the gain drift is coming from, and some ideas on how to control
> them. I have the schematic here:
>
> http://edmondsonengineering.com/Documents/Rainbow%20color%20Reader%20Schematic.pdf
>
> Basic description - MCU turns on an LED. The phototransistor is first
> buffered by a non-inverting opamp with a gain of 2, and the signal is
> split. Part goes directly to a PGA where it is first attenuated, and
> then the PGA boosts it up. This gives me a calibration control to
> deal with difference in output of the LEDs. The original and PGA
> signal are added, and this is then applied to another non-inverting
> opamp with a gain of 2. I also have one feed before this opamp to an
> ADC input on the PIC.
>
> Problems I have already solved:
> First, each LED has a different output level. Red needs a gain of
> around 2, BLUE a gain of around 5, and GREEN a gain of about 7. The
> PGA was added to give me an adjustable gain from around 2 to 14, with
> the two different taps into the separate input channels of the PGA.
> This gives me 16 different gain levels to play with. Using the tap to
> the second ADC channel, it actually gives me 32 different levels.
>
> Right now, RED uses this lower gain channel, and is steady as a rock.
> Part of this may be that my VCC is 3.3 volts, and only RED has a
> forward voltage below this. Both GREEN and BLUE have forward voltages
> of 3.4 volts.
>
> So, potential problems? could it be that repeated use warms up the
> GREEN and BLUE LEDs so that they become more efficient? Could the
> power supply drift higher as it warms up? Could the opamps drift with
> slight changes in temperature? Any advice ya'll can give will be most
> appreciated.
>


As Jim hinted, the first order of business would be to regulate the
current that goes through each LED. A resistor that drops only very
little voltage isn't going to cut it.

--
Regards, Joerg

http://www.analogconsultants.com/

"gmail" domain blocked because of excessive spam.
Use another domain or send PM.
 |  Next  |  Last
Pages: 1 2 3 4 5 6 7 8 9 10 11
Prev: Magnetism is really -- WHAT?
Next: low-end scope