Ambient light sensing via LED response
david at lang.hm
david at lang.hm
Tue May 5 01:52:08 EDT 2009
On Tue, 5 May 2009, C. Scott Ananian wrote:
> On Fri, May 1, 2009 at 11:59 PM, John Watlington <wad at laptop.org> wrote:
>>> Oh, yeah, you should be able to wire the top side of the LED directly to
>>> the LED and measure the photovoltaic current directly; that's not patented:
>>> battery voltage
>>> Q1 |
>>> ---from EC------|< _____ to A/D
>>> LED V
>>> The only question is whether the LED can put out enough photovoltaic
>>> current to be reliably measured by the A/D.
>> Ahh, therein lies the challenge!
>>> Depends on what the input to the A/D looks like, how much capacitance it
>>> sees, etc.
>> Thought the KB3700 (EC) A/D datasheet frustratingly doesn't list any such
>> exotic parameter
>> as input impedance, I asked ENE and they said that the input was high
>> impedance CMOS
>> (think a MOSFET gate, in the wee, wee microamps). The impedance also does
>> not vary
>> (even though the A/D is muxed).
> Hm.. What's the input voltage range -- ie, how small can it be? Even
> in full brightness, you're not going to see more than the LED's
> forward voltage drop -- which admittedly can be up in the 2 volt
> range, depending on your color, but you really want to be working well
> below the forward voltage drop, so that the self-discharge current
> through the LED isn't significant. See
> At low voltage, I_D will be small, and assuming infinite input
> impedance, I will be zero, so your sensitivity is set by R_SH, the
> equivalent shunt resistance of the LED (where you want R_SH as high as
>> Sorry, no parts count increases allowed except for one LED, resistors,
>> capacitors (basically free), and maybe
>> one transistor, diode, or NMOS MOSFET (about a penny). I will throw in a
>> couple of EC digital outputs, and
>> a day of Richard's time in EC code.
> Really, the easiest way to do this is just to run a wire from the
> positive side of the LED to the A/D, set the A/D reference voltage as
> low as possible, and then take it out into the sun and measure what
> you've got. If you generate measurable voltage at too dim a light
> level, it's easy to add a shunt resistor (although you'll probably
> want to switch the shunt resistor in only when the LED is off), but to
> get more voltage...
> I think you could probably add a capacitor in parallel to the LED to
> integrate the photocurrent over time to generate higher voltage, but
> bottom-line your A/D has to be comfortable with voltages around the
> voltage drop of the LED, since you'll never generate more than that.
> Your maximum voltage even with the paralleled capacitor will be
> limited by the self-discharge through the diode; again, it should be
> straightforward to put a low ESR cap of a few nF in parallel, take it
> outside, and see what voltage you generate.
> A last resort would be hooking up a MOSFET as a simple amplifier --
> again, you're not worried about linearity or any such niceties, but
> you'd still need a good match for your MOSFET's threshold voltage...
> some real measurements to replace the WAGes would go a long way.
this sounds far more complicated, and far more expensive (in parts) than
the initial proposal to reverse bias the LED and then run a loop to see
how long it takes for the leakage current to switch the low side to a
if you are just looking for the on-off (like you describe above), you
don't even need to do a busy loop. do a calibration at some point, then
reverse bias the LED, come back at a calculated time later and see if the
pin is high or not. if it is, you are in bright light and can turn off the
More information about the Devel