I'm trying to measure light levels with a Hamamatsu S6428-01 photodiode (Blue).


Below is the circuit that I have: an Arduino Uno, powered by USB, which is itself powering a ADA 4528-2 op amp. I have marked points p q and r for future reference:


I ran a general light-responsiveness test with a Tenma 72-7765 multimeter: I waved a blue LED in front of the diode, and saw how certain voltage differences reacted. Here were my observations:

  • V(q)-V(r) ranged from 0mV to -300mV (saturation), and was negatively correlated with the intensity of the blue light reaching the diode.
  • V(q)-V(p) was 1.2-1.3mV, and was completely independent of the intensity of the blue light reaching the diode (even with the LED touching the photosensitive area!).


The first result is perfect, and in line with theory. but for some reason the second result is puzzling: the input pins of an op amp should have the same voltage, and my ADA 4528 has an input offset of <2uV. However, I am getting 1.2mV. What's going on?


1 Answer 1


You need a negative supply on the op-amp (say +/-2.5V) for this to work.

The op-amp output has to swing negative to supply current to equal the PD current. It cannot possibly swing below ground without a negative supply, in fact it may only be able to get within some tens of mV of ground depending on load connection etc.

Optionally (and probably better for this application) you could flip the PD around, but you still may get a bit of a dead zone near zero because the output can't get quite to zero.

If you intend eventually on connecting it to an ADC input on the Arduino you will want to swap the PD around and perhaps to bias it above ground a bit, then you can stay with the 5V supply and within the range of the Arduino ADC.

If you don't need to go right to zero for very low light levels, just flip the PD.

  • \$\begingroup\$ He might be able to fix Vp at 2.5V with a voltage divider as well, but there will be an offset on the output. The diode might then be connected to 2.5V as well. A shunt voltage ref would be better than a voltage dividor. It would work even if the diode is connected to ground, though \$\endgroup\$ Jun 30, 2015 at 18:31
  • 1
    \$\begingroup\$ @ScottSeidman He'd get more resolution using a 100mV Vp. Maybe a voltage divider and another op-amp. The Arduino ADC is ratiometric to the supply voltage, unfortunately. \$\endgroup\$ Jun 30, 2015 at 18:43
  • 1
    \$\begingroup\$ Yeah, 2.5V is too high. 100mV might not give enough headroom, though. \$\endgroup\$ Jun 30, 2015 at 18:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.