Recent times saw quite a bit of interest for part numbers such as the APDS-9008 or APDS-9005-020 – they are a very interesting type of ambient light sensor.

One of the oldest questions in regards to light sensors involves their spectral sensitivity. If a part is to output but one voltage level, the conversion between incoming wavelengths and output levels is significant. Avago’s entire ADPS line tries to orient itself on the human eye, making them ideally suited for regulating the brightness of PDA and similar screens.

Avago orients its spectral response on the human eye

Harvesting the light output information is not difficult. Both APDS-9008-020 and APDS-9005-020 output a current which is (almost) linearly dependent on the input brightness. Transforming it to a measurable voltage can then be accomplished by adding a (high value) resistor as shown in figure two. Oddly, the datasheet claims that a 1K resistor leads to the most “linear” behavior of the part.

A resistor makes the voltage output visible for various ADCs...

Due to the relatively low output voltagrs, connecting your ADPS-9005 to an Arduino is likely to require at least some degree of amplifyer – this, fortunately, can be solved with an opamp or a similar component without much extra effort.

Sadly, the ADPS family is not well suited to all applications related to data transmission. Avago specifies rise and fall times in the range of 5ms for the parts, which is much too slow for all but the most basic fibre applications.