Prev: Magnetism is really -- WHAT?
Next: low-end scope
From: Charlie E. on 1 Mar 2010 11:54 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 1 Mar 2010 12:22 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 1 Mar 2010 12:25 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 1 Mar 2010 12:30 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 1 Mar 2010 12:32
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. |