0

Could anyone help me calibrate and use the MQ-7 sensor?

I've read guides, but some say I need RO, offset or heating cycles for calibration.

closed as off-topic by MatsK, VE7JRO, jsotola, Juraj, sempaiscuba Apr 24 at 2:37

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "This question does not appear to be about Arduino, within the scope defined in the help center." – MatsK, VE7JRO, jsotola, Juraj, sempaiscuba
If this question can be reworded to fit the rules in the help center, please edit the question.

  • 1
    Does this answer help? Or this – Greenonline Apr 22 at 18:13
  • what is the problem? .... what is preventing you from following the guide? – jsotola Apr 22 at 19:09
  • Which guide[s] were you following? Could you edit your question and provide links, and what were the problems that you encountered whilst following the,? – Greenonline Apr 22 at 19:17
1

This is the datasheet. The output is not in PPM, but logarithmic to the PPM.

This Instructables guide, Arduino CO Monitor Using MQ-7 Sensor, may help you, but calibration is required, preferably using a CO meter and, yes, heating-cooling cycles are required, in order to get the most accurate results. As the guide emphatically states:

WARNING: SENSOR REQUIRES MANUAL CALIBRATION FOR ANY PRACTICAL USE. WITHOUT CALIBRATION, DEPENDING ON PARAMETERS OF YOUR PARTICULAR SENSOR, THIS SKETCH MIGHT TURN ON ALARM IN CLEAN AIR OR NOT DETECT LETHAL CARBON MONOXIDE CONCENTRATION.


Here is the sensor calibration part of the guide (just to give you an idea of what is involved). There are additional preparatory steps beforehand, that need to be followed, so you need to read the complete guide really:

Step 7: Sensor Calibration

According to manufacturer's datasheet, sensor should be running heating-cooling cycles for 48 hours in a row before it can be calibrated. And you should do it if you intend to use it for a long time: in my case, sensor reading in clean air changed for about 30% over 10 hours. If you won't take this into account, you can get 0 ppm result where there is actually 100 ppm of CO. If you don't want to wait for 48 hours, you can monitor sensor output at the end of measurement cycle. When over an hour it won't change for more than 1-2 points - you can stop heating there.

Rough calibration:

After running sketch for at least 10 hours in clean air, take raw sensor value in the end of the measurement cycle, 2-3 seconds before heating phase starts, and write it into sensor_reading_clean_air variable (line 100). That's it. Program will estimate other sensor parameters, they won't be precise, but should be enough to distinguish between 10 and 100 ppm concentration.

Precise calibration:

I highly recommend to find a calibrated CO meter, make 100 ppm CO sample (this can be done by taking some flue gas into syringe - CO concentration there can easily be in the range of several thousands ppm - and slowly putting it into closed jar with calibrated meter and MQ-7 sensor), take raw sensor reading at this concentration and put it into sensor_reading_100_ppm_CO variable. Without this step, your ppm measurement can be wrong several times in either direction (still ok if you need alarm for dangerous CO concentration at home, where normally there should be no CO at all, but not good for any industrial application).

As I didn't have any CO meter, I used a more sophisticated approach. First I prepared high concentration of CO using combustion in isolated volume (first photo). In this paper I found the most useful data, including CO yield for different flame types - it isn't in the photo, but the final experiment used propane gas combustion, with the same setup, resulting in ~5000 ppm CO concentration. Then it was diluted 1:50 in order to achieve 100 ppm, as illustrated in the second photo, and used to determine sensor's reference point.

However, how accurate this guide is, is anyone's guess, to be honest.

Not the answer you're looking for? Browse other questions tagged or ask your own question.