Go Down

Topic: Does CO2 sensor require large pre-heating? (Read 3924 times) previous topic - next topic


Hello all,
            I am using a figaro CO2 sensor as the one shown here: http://www.figarosensor.com/products/4161pdf.pdf
I have it connected for almost an hour now but no fluctuations for the concentrations at all yet. I am using the code given below:

Code: [Select]
int  pin=14;
unsigned long duration;

void setup()
pinMode(pin, INPUT);
void loop()
unsigned long ppm; // adding for clarity

duration = pulseIn(pin, HIGH); // get the raw reading
ppm = duration - 177000UL; // subtract the 'zero point'
ppm /= 500UL; // divide by the gain
ppm += 350UL; // add the zero point back in

Serial.print("  PPM Co2: ");
Serial.print("  Raw Sensor: ");

can anyone guide me what to do? is the sensor not heated yet?
My connections are:
Sensor pin 1 and 4 => +5 V and 0V
sensor pin 2 and 3 => analog 0 and 0V

I think I may not have made correct connections. Please help.

James C4S

Have you run the sensor for 12 hours yet?
Capacitor Expert By Day, Enginerd by night.  ||  Personal Blog: www.baldengineer.com  || Electronics Tutorials for Beginners:  www.addohms.com


no. its been 3 hours almost. now. Should i heat it for 12 hours really? i mean i thought it should be up for measurement in about an hour or so.

James C4S

The datasheet clearly says:  "Conditioning period before test:  12 hours or longer."

Gas sensors typically have an initial burn-in period of 24 hours, but you should at least see some activity after 12.
Capacitor Expert By Day, Enginerd by night.  ||  Personal Blog: www.baldengineer.com  || Electronics Tutorials for Beginners:  www.addohms.com


okay. i will have it connected with heater voltage 5 V for about 12 hours. lets see what happens after that. I think i should get a steady voltage output from the sensor after that period.

James C4S

Are you using the bare sensor, or the evaluation board designed to make the sensor interface with a microprocessor?

Capacitor Expert By Day, Enginerd by night.  ||  Personal Blog: www.baldengineer.com  || Electronics Tutorials for Beginners:  www.addohms.com


unfortunately i m using the bare sensor and not the whole board. i am not sure about the connections as well. If you know of the connections, please let me know. currently i have connected it according to the ones i have written in the first post.


The referenced part generates an output signal in the 0..80 millivolt range.  Your code appears to have logic for measuring pulse width on a digital input.  There's a lot of "stuff" either missing or not explained between your sensor and your code, and the problem could be anywhere.

What sort of circuit do you have hooked up between the TGS4161 and the Arduino?  What have you done to test that it is all working correctly?


its a simple connection between sensor and my board. no extra ICs used. i have directly hooked up the wires to the sensor from board with the analog input taken from one of the pins of the sensor. i did test the sensor by breathing near it and it showed some fluctuations which varied very quickly i dont know y. maybe i need to warm it up for 12 hours. dont know the problem though.


Well, in that case it will not work.

The output of this sensor is a low analog voltage of 0..80 millivolts.  The best no-extra-circuitry sensitivity from an Aruino is going to be 0..1100 millivolts.  Theoretically you could register *something* on an A2D input, but you would not get useful reading data.

Your code needs to be taking A2D input, which it currently is not.

But the biggest problem you have is that the output impedance of that part is gigantic -- you WILL NOT be able to feed that directly into the Arduino A2D or likely into any garden variety op-amp.

Electromotive force (EMF) of the sensor should be measured using a high impedance (>100 G[ch937]) operational amplifier with bias current < 1pA (e.g. Texas Instruments' model #TLC271).

They suggest a specific TI amplifier -- why not go get one of those?


i m thinking of arranging the sensor with the operational amplifier having a large input impedance, an arrangement of similar kind is also shown in the datasheet of Figaro sensor. Should that work perfectly since op-amp will be a large 100 GOhm device? i think it should work. what would u suggest?


i have started getting the readings but it has not stabilized yet. Still fluctuating a lot. Any suggestions please...!


Have you revised either your circuitry or your code?  If so, how.
If you are obtaining readings, what are they? What makes you think they are incorrect or suspect in any way?

Go Up

Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

via Egeo 16
Torino, 10131