My goal is to read luminance signals with a certain level of sensitivity (able to tell when an OLED screen is on or off) with at least a 1 kHz sampling rate. I am following this tutorial (https://outsidescience.wordpress.com/2012/11/03/diy-science-measuring-light-with-a-photodiode-ii/) on reading luminance with a photodiode using an Arduino.
I used components that I previously bought to follow the tutorial to create a simple transimpedance amplifier (first pic), but it's not working on my setup (second pic). There are only two differences from the tutorial. First, the op-amp used in the tutorial (LTC 1050) is different than the one I had on hand (TL972IP), so I had to adjust based off of the difference in pin assignments. I also did not have a disc capacitor. These are the two differences: the photodiode and resistor (10k) were the same as in the tutorial. I double and triple-checked the wiring, then I took it apart then re-created the circuit. Same result (4.97v, readout is not luminance sensitive, see third pic). I think the wiring is not the problem. I have no clue though what specifically it could be. Maybe the op-amp? Maybe the lack of a capacitor?
OP-AMP TL972IP (datasheet: https://www.ti.com/lit/ds/symlink/tl972.pdf?ts=1737634150609&ref_url=https%253A%252F%252Fwww.mouser.es%252F)
CODE:
Note that the code outputs 4.97v regardless of the light level on the photodiode. I verified that the photodiode orientation (long = +) is correct.
Other things that I've tried: I used a 470 ohm, 10k ohm (shown here), and 1M ohm resistor. These did not change the output. I also used another photodiode. I verified that the photodiode that I used here is light-sensitive. Simply wiring the negative to ground and the positive to the output gives dark output of 0.22v and flashlight output of 0.40v. But these are not good enough for my purposes.
I have no idea what the problem could be.



