Gas Sensors MQ Series Principle

The virgin sensor require to run for 24 hours (the 1st time initialization).
The heater require 5V 800mW (160mA) which is a bit hot while working.

Updated: The MQ-2 sensor resistance (RS) will vary between 3 - 30 kohm while measuring gas. I don't known what it mean. Normally when measuring the clean air, the MQ-2 sensor resistance (RS) just only 10 kohm and reduce when found the gases. Look at the graph (post #4), if RO is fixed, the RS should be lowest to 0.3 kohm. The prefered range should be 0.3 to 10 kohm.

The MQ-2 sensor resistance will working as the Voltage Dividers.

003 Voltage-Divider.png

RS while measuring gas can find from VOUT and the fixed RL.
The best RL value for the entire sensitivity range can find from the equation below:

Updated: If we choose RS (min) = 0.5 kohm and RS (max) = 10 kohm, the best RL will be 2.2 kohm.

snap0947.png

These are the RL calculation from the RS max & min range:

RS (min) = 0.5 kohm
RS (max) = 10 kohm

The best RL value should be 2.2 kohm which give the analog VOUT 649 scales/spreads. It is the highest resolution.

006 Voltage-Divider-2K2-184.png

007 Voltage-Divider-2K2-833.png

(Reserved)

To calibration, we need to find the RO value while measuring the clean air.
Since we known the ratio of the clean air from the graph is 9.83, then we can calculate RO from the equation below:

008 RO.png

Now we can find the concentrations (ppm) of any gas from the graph from RS/RO ratio.

The FC-22 Gas Sensor Module use RL = 1 kohm.
These module will give 589 spreads.
The module also power down the heater by connected the resistor 5.1 ohm.

010 FC-22 MQ Series Gas Sensor Module Schematic.png

012 Voltage-Divider-1K-93.png

013 Voltage-Divider-1K-682.png

PS: Some modules use RL = 5 kohm which give 589 spreads too.

const int MQ_PIN = A5;
const float RL = 1.0;    // kohm (FC-22 module = 1.0 kohm)
const float CLEAN_AIR_RATIO = 9.83;    // Taken from datasheet graph
float RS;    // kohm   
float RO;    // kohm
int ADC;    // 0 to 1023
  
ADC = analogRead(MQ_PIN);
RS = ( (float) RL * (1023 - ADC) / ADC );

RO = RS / CLEAN_AIR_RATIO;    // Do only once while measuring clean air.

Hello natong,

The Rs/Ro ratio of this kind of sensors are measured in a static value of RL, so i thought that Rs/Ro ratio change if you change RL. For example, i'm using MQ-7, and in datasheet show that the Rs/Ro ratio is for a RL value of 10k, and in my case, i'm using FC-22 too and i'm a little confused.

Kind regards.