Sun Irradiance (in LUX) meter with BPW34 photodiode and OP AMP

Hy!

I would like to create an irradiance meter with BPW34 on Arduino Uno board.
I designed an Operational Amplifier (LM224N) circuit to convert diode current to voltage. (Picture in attachment)

In the BPW34 datasheet I see, the conversion ratio between diode current and irradiance is:
0,075 uA/1 LUX

The BPW34 datasheet:BPW34

My Arduino code is this:

#define LED_PIN 3

int adc_value=0;
double voltage=0.0;
double current=0.0;
double light=0.0;

void setup() {
  Serial.begin(9600);
}

void loop() {
  
  adc_value = analogRead(0);
  voltage = adc_value * (4.95 / 1023.0);  //ADC value to voltage conversion
  current = (voltage / 47000) * 100000;   //Voltage to current in uA conversion
  light = current / 0.075;                //Current to irradiance conversion in LUX
  Serial.print("ADC: ");
  Serial.println(adc_value);
  Serial.print("Voltage: ");
  Serial.print(voltage);
  Serial.println(" V");
  Serial.print("Current: ");
  Serial.print(current);
  Serial.println(" uA");
  Serial.print("Light: ");
  Serial.print(light);
  Serial.println(" LUX");
 
  delay(500);

}

The software and the circuit work fine, but I have the following problem:
The maximum photodiode current is 8.3uA. This is not too much… In the datasheet I see it is possible to go around 100uA. The calculated irradiance at full light is 110 LUX. :o

When I check the irradiance with an Light Meter (Axio Met AX-L230), he say the irradiance is more than 30 kLUX.

Can someone help me, what do i do wrong?

Thanks!
Benji

If you wanted to make a transimpedance amplifier,
then better connect the +input of the opamp to ground (not to 5volt).

The LM224 doen't have rail2rail outputs, so better to use a 2:1 voltage divider at the output of the opamp, and 1.1volt Aref in your code. 1.1volt Aref is also better suited for voltage measurements.
Leo..

Yes that opamp circuit can never work as the non-invering input is clamped to the positive rail. There’s no
headroom for the output to source any current through the feedback resistor.

Running the photodiode at 0V will work, it just won’t be as fast to respond as if it were
reverse biased.

The 47k resistor is far too high a value, that diode will need perhaps 5mA or so at full
solar irradiance, so 470 to 1k is the sort of value needed in your transimpedance amp.

Wawa:
If you wanted to make a transimpedance amplifier,
then better connect the +input of the opamp to ground (not to 5volt).

The LM224 doen't have rail2rail outputs, so better to use a 2:1 voltage divider at the output of the opamp, and 1.1volt Aref in your code. 1.1volt Aref is also better suited for voltage measurements.
Leo..

Sorry, I wrecked the drawing. The + input is connected to GND of course.
Then basically I have to find one Rail to Rail opamp?

MarkT:
Yes that opamp circuit can never work as the non-invering input is clamped to the positive rail. There's no
headroom for the output to source any current through the feedback resistor.

Running the photodiode at 0V will work, it just won't be as fast to respond as if it were
reverse biased.

The 47k resistor is far too high a value, that diode will need perhaps 5mA or so at full
solar irradiance, so 470 to 1k is the sort of value needed in your transimpedance amp.

The 47k resistor why is so high? I used this article to calculate the parts of the circuit.

At 80uA didode current the opamp output voltage is 3,5V.

Sorry Benji, have you succeed with this circuit? I'm having a project that require me to log lux over time. It looks like your circuit here suit my purpose well so I want to have some info about this.

Then, if there is any update about this project I would be very glad to hear.
And English is not my mother tongue so please don't mind if there is any mistake here and there.

NguyenPhuc94:
Sorry Benji, have you succeed with this circuit? I'm having a project that require me to log lux over time. It looks like your circuit here suit my purpose well so I want to have some info about this.

Then, if there is any update about this project I would be very glad to hear.
And English is not my mother tongue so please don't mind if there is any mistake here and there.

Hy!
I rejected the project. Momentarily I use an VEML6030 IC.
This IC output is the value of light intensity (in LUX) over I2C communication.
Datasheet

Benji1992:
Hy!
I rejected the project. Momentarily I use an VEML6030 IC.
This IC output is the value of light intensity (in LUX) over I2C communication.
Datasheet

Thank you man, I will check it out as it is an option.