Reading photodiodes

Hi all,

Background: I'm building a laser-projector using the arms of a hard disk. Because there is no encoder in these arms, I want to measure orientation of the arm using a LED and a photodiode (the arm will have a mirror for the laser, which I can then also use for the angular measurement). I got some photodiodes which a colleague gave me but I didn't know their type and had trouble connecting them, so I bought some BPW34s, but I'm having the same issues.

I connect the photodiode as in this scheme using a 0.5 MOhm resistor and connect the ADC-wire to the analog in A0 of the Arduino. When I read the pin (in my room, medium light), I get values around 910-940 (4.38 V when measured with my multimeter). When I cover the sensor the values increase to around 1000 (4.66 V with multimeter).

Can anyone tell me what I'm doing wrong? Can it be related to the fact that I'm using a too low-valued resistor? Thanks!

Harm

Increase R1.

Agreed, increase R1. But you can do better. See this overview on the topic: http://edge.rit.edu/edge/P09051/public/photodiodeamplifers.pdf

Firstly test it with the correct illumination in order to determine the resistor.

If the illumination is poor the photo current will be small and the sensor will be somewhat slow to respond
due to the high impedances involved, but I've no idea how fast you want it to respond.

Hi,

Thank you for the replies! What I didn't get, was that the voltage decreased with more light. But I now understand that the photovoltaic current flows in opposite direction (c to a) of the conventional current (a to c). That explains why the voltage drops. Using a larger resistor, the drop can be increased.

Do I understand this correctly?

Regards,
Harm

Correct.