MG812(Co2) Sensor ppm calculation
-
Hello Folks,
This one is my first post herefrom few day I'm playing with MG812 Co2 sensor let me tell you that the sensor is quite similar with famous MG811 Co2 sensor but instead of high voltage(6V) it uses** 5V**.
both sensor produced EMF in mV at the output w.r.t Co2 concatenation when Co2 concentration rises output falls.here is the datasheet for MG812 sensor
0_1473162025895_MG812 CO2 Manual V1.1.pdfI've taken MG811 as a reference for ppm calculation
here is the link for the firmware from DFrobot
link textI've use this code with my sensor when i play it my arduino shows, **Under heating/beyond range(400~10,000)
**
that's why I've decides to display it's o\p EMF,
my problem is when i make simple code to to read it's sample voltage then sensor's o\p voltage is not same as suggested in datasheet(250-330mV)here is my pin config got the Sensor
pin connection1(Heater1) ---------> +5V
3(Heater2) ----------> GND
2(TE1) ----------> GNG
3(TE2) ----------> Arduino(A0)here is my o\p on Arduino terminal
MG812 Co2 sensor Interfacing...
Samplse: 23
Volts: 0.11
mV: 112.3046875000Samplse: 15
Volts: 0.07
mV: 73.2421875000Samplse: 21
Volts: 0.10
mV: 102.5390625000Samplse: 16
Volts: 0.08
mV: 78.1250000000Samplse: 18
Volts: 0.09
mV: 87.8906250000Samplse: 19
Volts: 0.09
mV: 92.7734375000Samplse: 15
Volts: 0.07
mV: 73.2421875000Samplse: 22
Volts: 0.11
mV: 107.4218750000Samplse: 16
Volts: 0.08
mV: 78.1250000000Samplse: 19
Volts: 0.09
mV: 92.7734375000Samplse: 19
Volts: 0.09
mV: 92.7734375000Samplse: 17
Volts: 0.08
mV: 83.0078125000Samplse: 20
Volts: 0.10
mV: 97.6562500000Samplse: 15
Volts: 0.07
mV: 73.2421875000Guys can any one help me here
I'll appreciate all precious comments and suggestions
-
@Mahendra-Sondagar welcome to the forum!
Did you check with a multimeter if the voltages are the same as the arduino reports?
-
yes, Yveaux
I've check through multimeter before
-
@Mahendra-Sondagar then most likely it is an issue with your code to read out the ads. Please share your code it with us.
-
@Yveaux
The code is straight foreword it simply reads ADC's channel and convert in to voltageInsert Code Here #include <Arduino.h> void Setup(){ Serial.begin(9600); Serial.println("MG812 Co2 ppm calculation..."); delay(1000); } void loop(){ uint16_t samplse= analogRead(0); Serial.print("Samplse: "); Serial.println(samplse); float volts=((5.0*samplse)/1024); Serial.print("Volts: "); Serial.println(volts); float mv=(volts*1000); Serial.print("mV: "); Serial.println(mv); delay(2000); }
-
@Yveaux
Have you read datasheet here...
At the o\p side they mention unity gain amplifier with OpAmp
but the thing is that unity gain amplifier always produced same output volts!