I'm a physics student and doing a project where I need to detect moderate intensity of light with a response as linear as possible (measuring angles using Malus law (linear polarization)). Anyways, I was using photodiodes in photoconductive mode without amplification (just a resistor in series) and it was working reasonably well, but some days ago I've got VERY noisy readings (i'm using an Arduino as ADC). I do not know the source of the noisy readings, but I suppose I should invest time into making the whole circuit more resistant to noise. Apart from low-pass-filters, I was thinking that amplifying the signal on the sensor side would help (there is a cable of about 1m length between sensor and arduino). So I was looking into basic amplifying circuits using op-amps and transimpedance amplifier circuits seemed quite straightforward to me, yet I was wrong. I'm trying to reproduce simple op-amp circuits like the one I show in a circuit below, but it just doesn't work. I'm using an LM324N op-amp.

I'm thinking about using the photodiode in photoconductive mode later (more linear as far as I know?), but first I want to get running the more simple photovoltaic-mode-circuit.

Can someone look at my connections and point out if there are some obvious flaws in it? The op-amp seemed adequate for the job. It's driving me crazy.

The circuit doesn't react to light, and instead gives me a constant output of about 779 (about 3.8V).I tried using different resistors (100 Ohms, 5kOhms, 1Mohm), and I obviously tried flipping the diode ;).

Transimpedance amplifier (wikipedia) my circuit

any help would be appreciated!

Edit: As has been pointed out, the circuit was wired wrongly. I did make changes to the wiring, and now I'm getting constant zero values, and very low values when illuminated with a bright, white led (20-40 on arduino scale depending on the cathode orientation, so in the order of 100mV)


1 Answer 1


It looks like you've wired it up wrong.

Pin 3 should connect to pin 11 (ground). Not pin 4 (Vcc).

The Photodiode should also connect to ground not Vcc.

It looks like you have the power and ground to the LM324 correct.

That circuit will probably work OK with the LM324 and that photodiode - you may need a small capacitor to keep the amplifier stable. The value depends upon the characteristics of the photodiode. If you only need low speed then you can use something like 0.01uF ceramic.

You will need a resistor such as 1 megohm with that photodiode - that will give 1 volt/microamp output. What intensity of light are you using?

  • \$\begingroup\$ thank you very much for the quick response. I just checked and it was really wired up wrong (first I was using another OP-Amp (the LM358P)where the GND was directly next to the non inverting output and wired it this way and didn't change the circuit correctly to the new opamp). Quite embarrassing. I did now connect it the right way, and first I thought it wasn't working (was showing pure zeroes), but then I changed the resistor to a 1Mohm resistor, and it shows small values when flashlight directly shined on it. (About 20 with cathode to non-inverting and about 45 when cathode to inverting \$\endgroup\$ May 6, 2017 at 23:51
  • \$\begingroup\$ This seems quite weird to me, I was expecting bigger values, especially with 1Mohm connected to it. Also, it is weird to get a light-depending value independant on the cathode position. Is it actually amplifying anything? Can I just adjust the resistor value accordingly to get the full span? Will I not get into trouble when trying to measure the voltage on such a high impedance source (with arduino)? The light intensity I would use ranges from directly illuminated by 7 bright leds to nothing (depending on the angle between the polarizers.) \$\endgroup\$ May 6, 2017 at 23:56
  • \$\begingroup\$ @DepressedRobot As a physics student I assume you understand the idea of \$y=m\left(\cdot x + b\right)\$. There will be leakage current (bias and offset) that must be accounted as part of your results. A small offset voltage will also exist across the diode, with associated dark current. That's \$b\$. Of course, \$m\$ is your resistor value, whatever it is. Also, if the current is positive, the output will move negatively in response to more light. But it's possible that \$b\$ might cause it to start out slightly positive without light. What is the photodiode part number? \$\endgroup\$
    – jonk
    May 7, 2017 at 0:15
  • \$\begingroup\$ Yes I understand the concept of offset and dark current. One question: Are you referring to the original picture I posted or to the recent comments? As Kevin White pointed out, it was first wrongly connected (I'm ashamed to say so). What I'm getting now is 0 values if not illuminated, and small values if illuminated with one bright white led, so it always reacts with positive rising values to light, but the magnitud of the reaction (20 or 40 on arduino scale) depends on the cathode orientation. I sadly have no part number for that diode and no part number is written on it. \$\endgroup\$ May 7, 2017 at 0:36
  • \$\begingroup\$ I noticed, however, in previous tests that it reacts much less to light than other photodiodes I have. Those other photodiodes I already have included in my prototype, and the one I'm using here is for testing purposes. If it helps, I have a phototransistor with part number here (ST-KL3B) which yields similar results, but higher values (about 150, connected either way). I was using those phototransistors first, but decided to use photodiodes because I read that the response is more linear. \$\endgroup\$ May 7, 2017 at 0:39

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.