Creative Commons images are CC BY-NC-SA 3.0

7.25

added to your
shopping cart

quantity
In stock 239 in stock
7.25 1+ units
6.53 10+ units
5.80 100+ units

Description: This is a simple-to-use Carbon Monoxide (CO) sensor, suitable for sensing CO concentrations in the air. The MQ-7 can detect CO-gas concentrations anywhere from 20 to 2000ppm.

This sensor has a high sensitivity and fast response time. The sensor's output is an analog resistance. The drive circuit is very simple; all you need to do is power the heater coil with 5V, add a load resistance, and connect the output to an ADC.

This sensor comes in a package similar to our MQ-3 alcohol sensor, and can be used with the breakout board below.

Documents:

Comments 34 comments

  • how do you convert the analog read to a pollution value? does anyone have an example with some threshold values? thanks

  • I brought this sensor about a year ago and I haven’t figured out what to do with it, is a complex piece of hardware, the procedure to calibrate and adjust this device are just ridiculous complex, you would require to generate fixed and measurable amounts of C0 in a test chamber to effectively calibrate this module, not only that but you’ll need additional sensor data to properly calculate deviations caused by humidity and temperature.
    Buying this product as is makes no sense at all, and I warn everyone please use proper CO alarms in your home/office ! Sadly I know a lot of people who have died because of CO intoxication.

  • It looks like the manufacturer, Hanwei, also makes many other sensors. Could you carry ones for O2 and H2S specifically? I’d like to make a personal air-quality monitor.

  • Pay attention to the datasheet for this sensor. When it says 5k load resistor minimum, it means it. Also, you need to switch this unit from a low heat voltage(1.4v) to a high heat voltage(5v) cyclically to achieve the desired results. In my testing I found that just leaving the heater on high gave diminishing sensitivity until I turned off the heater for a few minutes.

  • Used the Arduino Uno and an adjustable voltage regulator with an optical solid state relay to drive the MQ7 and read its output. More in my blog at blog . Enjoy!

  • upto what temperature it can operate? does it can be used for continuous monitoring

  • What does that “preheat” for 24h mean? - Do I leave it 24h with 1.4v? (28% PWM) - Do I cycle it for 24h (1.4/5v) and WHY? Is preheat period needed only for the so called calibration or for usage also? (these are the same questions as some post above)…any answers ? Thanks for your time

    • These sensors work in ‘open air’ environments only. So called “PURE” gas environments are not possible. Typical Oxygen mix PLUS the contaminant to check for.

      Calibration is done in a sealed container, with a stirring fan. Find a large square tupperware bowl or small fish tank. Fit a tight lid to the tank. Fit a hose fitting to the lid, such that the sensor can be coupled to the tank. Fit a second hose fitting connected to a syrenge or small gas cylender. Apply a given gas and evaluate readings according to the data sheet. Before testing, be sure to run the fan with the lid OFF in order to mix the environment. For example, 1CC of rubbing alcohol in a syrenge pumped into a tank of 1000CC volume, dropping in front of the fan, should quickly mix. Or use a bicycle/paintball gun CO tank. In this case, calibrations are in reference to the typical atmosphere of the calibration location.

      • Pellet guns use tanks of CO2 (carbon dioxide), not CO (carbon monoxide). Attempting to calibrate this sensor with CO2 will likely result in badly skewed results, if the sensor responds at all.

    • The purpose of the one time bake 12/24 hours) is to eliminate any remaining moisture or contamination from the manufacturing process. Remember that this sensor operates by the gas coming in contact with a doped ceramic coating (which the heater is embedded in). As for the voltage cycle/level.. I don’t know. I am making contact with Henwai. time is in the data sheet.

      For readings, you need only bring the sensor up to temp and ‘burn off’ any new contaminants. Data sheet suggests a 3 minute heat time before taking a reading, followed by a cool down before taking another reading.

      When operating outdoors, it is suggested that you run the heater all the time at a LOW power to keep it warm (above outdoors ambient/above freezing). This will keep it dry and prevent it from freezing. Moisture will affect readings. Fully wet or frozen will destroy the ceramic.

  • is there a wiring example for MQ-7??

  • Does anyone know how to interpret the output of this sensor? I follow the connection in the Wiring example. And the output is integer values I believe ranging from 0 to 1023. However, how to convert this reading to the PPM values? Thanks!

    • You need to calibrate this using a sample of known concentration in PPM. Take the reading from this known value and that will allow you to build up a scale to translate the analog readings to ppm readings. Take a look at the datasheet for more detailed information in regards to calibration.

      • Thanks for your quick reply! Much appreciated.

        What the datasheet shows is a chart about the correlation between Rs/Ro and the PPM values. I am wondering whether I can use this chart for calibration since I do not have professional equipment which provide the accurate concentration information.

        Assume I can do a simple calibration using the chart. Is the sensor’s output (the output is an integer value ranging from 0 to 1023 I believe) the Rs/Ro value? Please correct if I misunderstood the datasheet. Many thanks.

        • I have been trying to resolve the same problem. Were you able to figure out a way to translate the Rs/Ro value to ppm values for CO? Any help in this direction is highly appreciated.

          • You have to calibrate the ‘sensor’ for your environment. We will try to use this CO sensor in a dry-argon gas environment. We will calibrate the sensor with known amounts of CO. There are gas tight syringes that can do this. It also means that you need access to pure CO and proper safety equipment (such as a common CO detector and fume hood). If we change the environment we will have to recalibrate. There is no way around this step. It should be possible to generate a two point plot for different environments that would correlate the Rs/Ro to PPM.

  • Any one had used it with netduino?

  • What happens if moisture gets in the screen? Will the heater coil take care of it?

  • Is it me or did the price go up from $4.95 to $7.25?????

  • I just got this baby from the Greek sparksfun partner. One question only : what does that “preheat” for 24h mean?
    - Do I leave it 24h with 1.4v? (28% PWM)
    - Do I cycle it for 24h (1.4/5v)
    and WHY?
    Is preheat period needed only for the so called calibration or for usage also?
    Thank you for yout time in advance for answering this

  • I would like to see a breakout board for this sensor that provides a calibrated value via I2C or SPI or something.

  • I have the MQ-7 and I only see a wiring diagram for the MQ-135. Looks similar. Also, I can’t really see any indicator that shows A vs. B sides – they look symmetrical – can they be wired either way. What does it mean to heat for 48 hours? Is this for calibration? Appears that the sensitivity is 200ppm, which is pretty high – for firefighting, we measure in the single digits (I’m making my own CO detector for our department). Is there a better sensor out there?

  • What about giving it a lower DC voltage through a linear regulator instead of the PWM?
    And what about the settling times?
    How much variation is to be expected between devices?

  • Driving the heater with the suggested 5v/1.4v rectangular produces odd spikes in the sensor output, making the gas response signal hard to identify. I’ve found that a slow sine heater drive, via PWM, yields a much more sane output. Here is a 120-second heater cycle between 2v and 5v, and a very small Hydrogen release. 10k load.
    http://rightime.com/images/Misc/CO_Sensor_Hydrogen_3.GIF

  • Here is a better Hydrogen test, two small releases (no guess in PPM), which I then allowed to dissipate quickly. This is with a 10k load. http://rightime.com/images/Misc/CO_Sensor_Hydrogen_2.GIF

  • CO sensor response to rubber cement (apparently n-Heptane): http://rightime.com/images/Misc/CO_Sensor_RubberCement.gif

  • dim CycleHeaterTaskStack(1 to 40) as byte  
    const pinGas as byte = 13  
    const pinPWM2 as byte = 25  
    sub Main()  
     dim sV as single, sX as single  
     callTask "CycleHeaterTask", CycleHeaterTaskStack ' start heater cycling  
     call PutPin(pinGas, bxInputTriState) ' set pin for ADC  
     do  
      do until (register.rtctick mod 512) < 5 loop ' 1Hz sensor sample rate  
       sV = csng(register.OCR2) / 255.0 * 5.0 ' heater voltage  
       sX = csng(GetADC(pinGas)) / 1024.0 ' get sensor  
       debug.print fmt(sX, 3) &" "& fmt(sV, 2) ' display  
      loop  
     end sub  
    sub CycleHeaterTask()  
     const iHighVolts as integer = 255 ' 100% PWM = 5v  
     const iLowVolts as integer = 71 ' ~0.28 * 5v = 1.4v  
     const Rate as byte = 1 ' PWM 14400Hz  
     call PutPin(pinPWM2, bxOutputLow) ' PWM pin to output  
     register.TCCR2 = Rate or bx0110_0000 ' init PWM  
     do register.OCR2 = cbyte(iHighVolts) ' heater 5v  
      register.rtctick = 0 ' for 60 seconds  
       do while Timer < 60.0  
       loop  
      register.OCR2 = cbyte(iLowVolts) ' heater 1.4v  
      register.rtctick = 0 ' for 90 seconds  
       do while Timer < 90.0  
       loop  
     loop  
    end sub  
    
    • What is this program for? I’m trying to make a carbon monoxide sensor in which the sensor is exposed, and if it detects CO a small led lights up. Is there a program or a similar program for that? (Excuse my inquiry but I have just taken up electronics so if you are willing to share it any help, any help at all would be greatly appreciated).

  • Not surprisingly, this device runs warm. The documentation specifies that the heater should be cycled between 1.4v (drawing ~30mA) for 90 seconds and 5v (140mA) for 60 seconds. The internal temperature is only slightly above room ambient at 1.4v but quickly climbs to 150F(66C), then settles at ~175F(80C), at 5v; the plastic body temperature reaches 117F(47C) in ~75F free air. This is not a low-power part.
    I’ve found that cycling the effective heater voltage is easy via 28% and 100% PWM and a VN2222 FET from 5v.

    • Do you have a schematic you’d be willing to share with those of us who’ve never used a FET to control anything? We’re interested in benchmarking this sensor, and have some CO calibration gas, but limited electronics skill. We’ve got it running just fine with constant 5V current, can sample changes in the response with the Arduino’s ADC, but want to cycle power as you did (slow sinusoid wave).

      • Someone else might want to check this, but here’s how I understand it. The drain (D) of the FET is connected to 5v, and the source (S) is connected to the heater input of the sensor. The PWM pin is then connected to the gate (G) of the FET. By setting the PWM widths as shown below, the voltage at S on the FET with switch between 1.4v and 5v. You essentially use the FET as a switch, the advantage being you don’t pull large amounts of current out of the microcontroller, potentially damaging it.

  • If I read the datasheet correctly, this device is actually a better H2 sensor than it is a CO detector! The heater gives me pause, though, for that application.


Related Products