# Need help understanding datasheet

Hi,

I am using an MQ-7 CO sensor, and I have wired it as recommended in http://www.parallax.com/Portals/0/Downloads/docs/prod/sens/MQ-7.pdf

I am using an RL of 20k ohm, and having implemented the variable voltage for the heater using PWM, I am getting readings of sorts from the analog read (typically around 950).

How can I go about converting this into ppm, as per the datasheet? I can't figure out what it is expecting me to do.

Regards,

Looks hard to interface to. You have to cycle power to the heater 60 seconds at 5v and 90 seconds at 1.4v and repeat that for 48 hours before you can rely on the readings?!? I don't think you can determine ppm CO. The resistance at 100ppm can be anywhere from 2k to 20K and the signal you get is the ratio of that resistance and the current resistance.

As near as I can tell from the charts: if the resistance drops to 1/28th the resistance in clean air you probably have about 100ppm and 1/280th would put it at about 4000ppm

Interesting problem... I used some of these MANY years ago (I believe they are basically "Taguchi Gas Sensors" Google and you'll see a lot of information is available.

Beginning his reserch in 1962, Mr. Naoyoshi Taguchi (former chairman of Figaro) became the first person in the world to succeed in the development of a semiconductor device which could detect low concentrations of combustible and reducing gases when used with a simple electrical circuit. His work was completed in 1968, and in October of 1968 he and his associates established mass production and started selling the TGS (Taguchi Gas Sensor).

Please keep us informed of what you find out. I am buying some of these out of China and I want to have an Arduino page showing how to use them!

johnwasser: Looks hard to interface to. You have to cycle power to the heater 60 seconds at 5v and 90 seconds at 1.4v and repeat that for 48 hours before you can rely on the readings?!?

I have done that over a 48 hour period, my concern is that I am using PWM to generate the 1.4v, which I am not convinced is working....perhaps the Arduino cannot supply the mA needed?

johnwasser: I don't think you can determine ppm CO. The resistance at 100ppm can be anywhere from 2k to 20K and the signal you get is the ratio of that resistance and the current resistance.

johnwasser: As near as I can tell from the charts: if the resistance drops to 1/28th the resistance in clean air you probably have about 100ppm and 1/280th would put it at about 4000ppm

Sorry my electronics isn't great. If I have a 10k resistor between the output of the sensor (B1) and ground, and then I put an analogRead on (B1) also, then the reading I get is around the 800 mark. How do I translate this to the ratio?

[quote author=Terry King link=topic=55799.msg400001#msg400001 date=1300515063] Interesting problem... I used some of these MANY years ago (I believe they are basically "Taguchi Gas Sensors" Google and you'll see a lot of information is available.

Please keep us informed of what you find out. I am buying some of these out of China and I want to have an Arduino page showing how to use them! [/quote]

Yes from Googling (verb?) I would agree that's what it looks like. These are from Sparkfun, but seem very similar to the Figaro sensors available, which would make sense given the information you posted.

My plan is to basically make a circuit to power an array of various sensors, then use the Arduino Duemilanova with analog reads to take the readings and pass them along a serial interface.

Any help appreciated!

my concern is that I am using PWM to generate the 1.4v, which I am not convinced is working....

That definitely will be an issue - this is a resistive heater and it needs 1.4V DC or 1.4V AC (rms) at about 0.25A.

So firstly you can't drive this from an Arduino pin, it needs much more current. Secondly if you do use PWM you'll have to work out the root-mean-square values to get it right. There is a possibility that 5V might be too high for the heater as it will be dissipating 4.5W during the pulses rather than the 0.35W it is designed for - this might cause too much thermal stress and/or melt bonding wires.

I would suggest using a voltage regulator to drop your supply volt down to 1.4V (this needs an adjustable regulator) for the heater. Alternatively you could try a current-limiting resistor to control it but its not clear if the heater's resistance varies with temperature (like a bulb filament) - if so current limiting might not work reliably.

MarkT:

my concern is that I am using PWM to generate the 1.4v, which I am not convinced is working....

That definitely will be an issue - this is a resistive heater and it needs 1.4V DC or 1.4V AC (rms) at about 0.25A.

I could supply 1.4V DC with 0.25A, and use an Arduino pin to switch a transistor controlling either 1.4V or 5V though presumably?

What about using an audio amplifier like an OpAmp in voltage follower mode? So you would be able to direct control output voltage. Maybe you'll find a d-type one so you can save power. Also seems like some motor drivers could do the job at 0.25A.

I have decided to go with having both a 1.4V and a 5V input, switching between the two using transistor logic. In the long term voltage following does seem a good idea!

I am obviously powering off an external source now as well since there seems no way no power the requirements of the device from an Arduino itself!

Aside from these sensors, does anyone know of any low cost gas sensors which would be more suited to Arduino?

Regards,

AK

The MQ-7 seems to be the cheapest on the market. "More suitable to Arduino" means the interface, am I right? This mybe the point of least interest. The main point - I mean - is a robust, uncomplicated and reliable measurement.

my concern is that I am using PWM to generate the 1.4v, which I am not convinced is working…

That definitely will be an issue - this is a resistive heater and it needs 1.4V DC or 1.4V AC (rms) at about 0.25A.

I would think that PWM would work pretty well for a resistive heater (as long as it’s capable of handling the short pulses at 5V.) Effectively, the thermal mass of the internal components should do the necessary integration. After all, a typical lamp dimmer or a home’s air conditioning unit is essentially PWM.
(I have no actual experience with the sensor involved, though…)

do you know how to convert that output of mq7 to ppm?

yes..im using that one.the program is only for the toggle and getting the output of sensor. the problem is i dont know how to convert the output to a useful one

vhenamae: i dont know how to convert the output to a useful one

If by "useful" you want a CO value in parts per million you have several hoops to jump through.

You will need to measure temperature and relative humidity. If the temperature is not 20°C or the relative humidity is not 33% you will have to adjust your readings according to Figure 4.

You also have to calibrate the sensor with a known concentration of CO. The R0 value (resistance at 100 ppm CO, 33% RH and 20°C) is the basis for measuring other CO levels and can be anywhere from 2K? to 20K?. You have to measure it and to do that you need a chamber with a known concentration of CO, preferably 100 ppm.

If you just want a VERY ROUGH value, look at my first response: "if the resistance drops to 1/28th the resistance in clean air you probably have about 100ppm and 1/280th would put it at about 4000ppm"

Good luck.

thank you so much.. sir im using a code in converting it to ppm but im not sure about it.could you please guide me?