Measuring very low current (using op amps)

Hi,
I am trying to measure IV characteristics of a solar cell, the circuit is very simple, there is the solar cell, potentiometer, and a shunt resistor. The idea is to change value on potentiometer from zero to 1M Ohm and measure voltage on the cell and current it gives (voltage on the shunt resistor).

The problem is the current is too low (about 0 - 4mA) and arduino gives reads zero voltage on the shunt.

My idea is, is it possible to use op amp (powered from arduino) on the shunt voltage to get some readable values?

The thing is that i do not know much (most is what i read here) about op amps, would it be possible to use the non-inverting (i assume that that is what i need?) setup in my problem? Also i how am i supposed to chose a right op amp?

I will be really glad for any help, explanations or examples.
Thank you

Most multimeters can measure down to 1 microAmpere current.

Sure, but the idea is to measure the whole thing with arduino. Just plug the solar cell into the circuit press a button and result is the IV characteristics. Only problem is that the current is too low. It could be solved with bigger shunt resistor but that would just make other problems appear.

What resistance shunt are you using?

Is it possible to increase the resistance of the shunt?

Are you trying to measure a single cell (~0.5volt) or a solar panel.

The Arduino should have no problems measuring 0-4mA if you use the right shunt resistor and 1.1volt Aref.
A 100ohm resistor should have 0.4volt across with 4mA cell current.

You should measure current and voltage (two three analogue inputs).
Post a diagram, showing how you have connected things.
Leo..

Its a current shunt, it needs to be small to avoid interfering with the cell voltage measurement.

Yes, a non-inverting amp will do the job, you need a rail-to-rail low voltage opamp that has both
input and output ability to go all the way down to the -ve rail (ie ground in a single supply
setup). Low input offset voltage will be important I suspect, so a precision rail-to-rail low-voltage
opamp.

Maybe have a look at David Jones' µCurrent, at least at the schematics.

It is a single cell (0.4V) and increasing the shunt resistance is really not the way.

Here is the circuit, by printing A0 I can read the voltage on the cell and on A2 the "current".

And thank you for the confirmation on the op amps, will try to look for something like that. (by the way approximately what price am i supposed to expect?)

The problem is the current is too low (about 0 - 4mA) and arduino gives reads zero voltage on the shunt.

If the load resistance is known you can measure the voltage across the load and calculate current, so you don't need a separate shunt.

Switched-fixed resistor values would probably be better than a pot because the values are known (without measuring) and it's easier to automate.

Measuring "short circuit" current might be tricky because you do need some resistance to measure the voltage. But, with the 1.1V reference you can get resolution down to 1mV and that should be "close enough" to short-circuit current for any practical purposes because you're probably not going to use the solar cell near zero-volts.

The short circuit current is a fundamental spec of the cell, it should be measured properly...

Hi,

Assuming you can allow a small resistance I would suggest you consider one of these 24bit A/D with a suitable low value resistor.

If I read the spec correctly at a gain of 128 the input range is +/-9mv . If you used a 0.1 ohm sense resistor you would have ~ 0.4mv full scale. Which means you only get to use 18 bits of the 24 bits. Still pretty good.

For the resistor, I've used something like this Resistor in the past for similar measurements.

Note: with any precision you are seldom able to attain the "calculated" results but I think this will work for you. It would be even better if you can increase the 0.1 resistor value.

If you need absolute values, calibration is another issue.

I think short circuit current for this small 4mA cell is best measured with a transimpedance amplifier.
The only way to have zero voltage across the cell at any current.
A simple LM358 with Arduino's 1.1volt Aref could do that.

Add a negative supply voltage for the opamp, and generate a 0 to -1volt with the second half of the opamp from a PWM signal. Feed that to the +input of the transimpedance opamp, and you can make voltage/current traces.
Leo..