Xadow - Multichannel Gas Sensor

Introduction

Xadow – Multichannel Gas sensor is a very small sensor board with a compact MOS sensor, MiCS-6814.The MiCS-6814 is a robust MEMS sensor for the detection of pollution from automobile exhausts and foragricultural/industrial odors. This sensor board has two standard Xadow interfaces. It is very easy to use with Xadow - Main Board.

Feature


  • Three fully independent sensing elements on one package
  • Built with ATmega168PA
  • I2C interface with programmable address
  • Heating power can be shut down for low power
  • Standard Xadow outline

Block Diagram

Electrical Characteristics


Item Condition Min. Typ. Max. Unit
Voltage - 3.1 3.3 3.5 V
Ripple @Max Power - 80 100 mV
Heating Power - - - 88 mW
Max Power - - - 150 mW
ADC Precision - - 10 - Bits
ADC Voltage - 0 - 3.3 V
I2C Rate - - 100 400 kHz
VIL @I2C -0.5 - 0.99 V
VIH @I2C 2.31 - 3.8 V

Performance RED sensor

Characteristic RED sensor Symbol Typ Min Max
Sensing resistance in air R0 - 100 1500
Typical CO detection range FS - 1 1000
Sensitivity factor SR - 1.2 50

Performance OX sensor |Characteristic OX sensor |Symbol| Typ |Min |Max |Unit| |—|—|—|—|—|—| |Sensing resistance in air |R0 |- |0.8| 20| kΩ| |Typical NO2 detection range| FS| - |0.05| 10| ppm| |Sensitivity factor |SR |-| 2 |- |-|

Performance NH3 sensor |Characteristic NH3 sensor| Symbol |Typ| Min| Max| Unit| |—|—|—|—|—|—| |Sensing resistance in air |R0| - |10 |1500| kΩ| |Typical NH3 detection range| FS |- |1 |300| ppm| |Sensitivity factor| SR|- |1.5| 15| -|

Pin Definition


Demonstration

You can get start with Xadow - Main Board

Hardware Installation:

1) Connect Xadow - Multichannel Gas Sensor to Xadow - Main Board. Do not forget to install Xadow Driver. Note: when connect Xadow - Multichannel Gas Sensor to Xadow - Main Board, you should concern aboutthe connection direction. The connection method is that the unfilled corner of one xadow moduleneed to connect to the right angle of another module(see four corners of each xadow module).

Upload Code:

2) Download Arduino Library & Grove/Xadow firmware and install it to Arduino Library.

3) Open the code directly by the path:File -> Example ->Mutichannel_Gas_Sensor->ReadSensorValue_Xadow.

The content of ReadSensorValue_Xadow.ino please refer to below.

/*
    This is a demo to test MutichannelGasSensor library
    This code is running on Xadow-mainboard, and the I2C slave is Xadow-MutichannelGasSensor
    There is a ATmega168PA on Xadow-MutichannelGasSensor, it get sensors output and feed back to master.
    the data is raw ADC value, algorithm should be realized on master.

    please feel free to write email to me if there is any question

    Jacky Zhang, Embedded Software Engineer
    qi.zhang@seeed.cc
    17,mar,2015
*/

#include "xadow.h"
#include <Wire.h>
#include "MutichannelGasSensor.h"

void setup()
{
    Xadow.init();

    Serial.begin(9600);  // start serial for output
    Serial.println("power on!");

    mutichannelGasSensor.begin(0x04);//the default I2C address of the slave is 0x04
    //mutichannelGasSensor.changeI2cAddr(0x10);
    //mutichannelGasSensor.doCalibrate();
    //delay(8000);
    while(mutichannelGasSensor.readR0() < 0)
    {
        Serial.println("sensors init error!!");
        delay(1000);
    }
    Serial.print("Res0[0]: ");
    Serial.println(mutichannelGasSensor.res0[0]);
    Serial.print("Res0[1]: ");
    Serial.println(mutichannelGasSensor.res0[1]);
    Serial.print("Res0[2]: ");
    Serial.println(mutichannelGasSensor.res0[2]);
    mutichannelGasSensor.powerOn();
}

void loop()
{
    mutichannelGasSensor.readR();
    Serial.print("Res[0]: ");
    Serial.println(mutichannelGasSensor.res[0]);
    Serial.print("Res[1]: ");
    Serial.println(mutichannelGasSensor.res[1]);
    Serial.print("Res[2]: ");
    Serial.println(mutichannelGasSensor.res[2]);

    mutichannelGasSensor.calcGas();
    Serial.print("NH3: ");
    Serial.print(mutichannelGasSensor.density_nh3);
    Serial.println("ppm");
    Serial.print("CO: ");
    Serial.print(mutichannelGasSensor.density_co);
    Serial.println("ppm");
    Serial.print("NO2: ");
    Serial.print(mutichannelGasSensor.density_no2);
    Serial.println("ppm");

    Xadow.greenLed(LEDON);
    delay(500);
    Xadow.greenLed(LEDOFF);
    delay(500);
    Serial.println("...");
}

4) Upload the code. Remeber to select Seeeduino Xadow from the Tools | Board menu of the Arduino environment, and select the correct serial port Xadow - Main Board is using. Or you could select Arduino Leonardo to instead of it.

By opening the serial monitor, you can see the raw data read from sensor.

Resources


Help us make it better

Thank you for choosing Seeed. A couple of months ago we initiated a project to improve our documentation system. What you are looking at now is the first edition of the new documentation system. Comparing to the old one, here is the progresses that we made:

  • Replaced the old documentation system with a new one that was developed from Mkdocs, a more widely used and cooler tool to develop documentation system.
  • Integrated the documentation system with our official website, now you can go to Bazaar and other section like Forum and Community more conveniently.
  • Reviewed and rewrote documents for hundreds of products for the system’s first edition, and will continue migrate documents from old wiki to the new one.

An easy-to-use instruction is as important as the product itself. We are expecting this new system will improve your experience when using Seeed’s products. However since this is the first edition, there are still many things need to improve, if you have any suggestions or findings, you are most welcome to submit the amended version as our contributor or give us suggestions in the survey below, Please don’t forget to leave your email address so that we can reply.

Happy hacking