Current reading with nA range.

Hello! I recently bought a Carbon Monoxide Sensor for breath [2ELCOH from DD Scientific]. However, the datasheet specifies that the output signal is 50±20nA / ppm.

My question is, how does arduino read current, especially those in the nano ampere scale?

s_4_2eco_datasheet_.pdf (237 KB)

You make an electrometer to amplify the current. It is usually a high impedance op-amp with a real high resistance feedback resistor ( Victor makes some ). Dwight

Why did you buy that particular sensor?

According to the data sheet, the maximum CO2 level it can measure is 1000 ppm, but human exhalation (typically 40,000 ppm) can exceed 70,000 ppm CO2.

jremington: Why did you buy that particular sensor?

According to the data sheet, the maximum CO2 level it can measure is 1000 ppm, but human exhalation (typically 40,000 ppm) can exceed 70,000 ppm CO2.

Dioxide, monoxide, whatever it takes. :P

Oops, misread the OP!

If you expect to read 1000ppm, the feedback resistor would be 100K.
( 50 na per ppm and 5V scale )
Not too bad.
You need to have two calibration pots. One to compensate
for current offset and the other to compensate for voltage
offset.
You short the input to ground and adjust the voltage offset.
You float the input and adjust the current offset.
Then connect to the sensor.
A 1 Meg resistor fro the feedback would be a 100ppm for 5 volt
scale.
You might even want to have a switch to select different sizes
for different scales.
You may need a variable feedback because the sensor has quite
a large percentage error.
You need to insure that the voltage to the A/D doesn’t exceed
the rated input.
A zener on the feedback and a divider to the A/D works well.
Dwight