2016年4月2日星期六

MH-Z16 NDIR CO2 Sensor with I2C/UART Interface Board

Unlike the chemical CO2 sensor(MG811), this NDIR CO2 sensor does not need a constant ON heating element. The heating element inside a chemical CO2 sensor keeps the sensor warm so that the chemical reaction could happen and produce an continuous EMF as the output, which depends on the CO2 concentration.  This NDIR measures the concentration of the CO2 by measure the received IR light strength, it only consume relatively high current during the ON state of the IR emitter.   Also, the manufacturer of the sensor claims a ±(50ppm +5%reading value) initial accuracy of this sensor, and it is factory calibrated. 

According to the datasheet of the sensor, the re-calibration of the sensor is  recommended over 6 months of use.  The method of the calibration is quite easy compared to the MG811, just put it in fresh air for a couple of minutes and press the “CALI” button on the adapter board or issue a “calibration” command.

NOTE: The USB2.0 port on your PC may not be able to provide sufficient current to power the sensor and your Arduino in the same time. To minimize the supply voltage fluctuation on the sensor, it is recommended to use an external 12V power supply on your Arduino.

Features

  • Factory calibrated
  • One button re-calibration or via “calibration” command
  • Automatic re-calibration over 24-hour cycle
  • I2C or UART interface which could be selected by on-board switch
  • On-board MOSFET which could be used to turn off the module completely to save power(supported in I2C mode only).
  • Configurable 3.3V/5V IO

Pin Configuration

  • GND: GND
  • VCC:  5V Power Supply
  • RX/SDA:  Rx input for UART interface or SDA for I2C interface
  • TX/SCL: Tx onput for UART interface or SCL for I2C interface

 Technical Details

MH-Z16 sensor has a  UART interface, and with the help of the adapter(I2C to UART bridge IC SC16IS750) user could connect this sensor to an I2C interface to save two IO pins.
MH-Z16 has a feature called “auto self calibration”, which is an algorithm built-in the firmware of the sensor. The SIMPLIFIED working principle of this algorithm is something like this:
1. The sensor keeps tracking the lowest reading of the sensor since it is powered on.
2. After the first 24hours since it is powered on, it records the lowest value(value A).
3. After the first 48hours since it is powered on, it records the lowest value in the last 24hours(value B).
4. It compares value A and value B, if they matches to some extent, it will use this value as the new baseline value.
5. The sensor repeats 2 and 3 after 4.


The manufacturer claims that the algorithm is effective against long time drift. This feature is good for applications which the sensor will be in fresh air for at least some period of time in a cycle(24hours). For example, in your application, there is always sometime in a day that the CO2 concentration in the room is around 400ppm(theoretically, the CO2 concentration will never below 400ppm in fresh air). However, it is a disaster if the sensor is in an atmosphere where the co2 concentration is always low or above 400ppm(for example,greenhouse).

To “break” the auto-calibration cycle, or to “disable” the auto-calibration, please turn OFF the sensor at least once every 24hours. User could turn ON/OFF the sensor by changing the state SC16IS750’s  PIN15 via I2C interface.

PIN16 of the SC16IS750 chip is used as a calibration signal to the sensor, and PIN15 of the chip is connected to a power MOSFET which could be used to switch the sensor ON/OFF. As both the PIN15 and PIN16 is software programmable, the calibration and ON/OFF could be controlled by software via I2C interface. 




没有评论:

发表评论