SEN0219 Analog Infrared CO2 Sensor For Arduino


DFRobot released its latest high-precision analog infrared CO2 sensor. The effective measuring range is from 0 to 5000ppm. This sensor is based on non-dispersive infrared (NDIR) technology and has good selectivity and oxygen-free dependency. Additionally, its service life is up to 5 years! It integrates temperature compensation and supports DAC output. Most importantly, the product is easy to use and is compatible with all types of microcontrollers with ADC function. In addition, this product is a high-performance sensor that combines technology of mature infrared absorption gas detection with precision optical circuit design, as well as sophisticated circuit design. It has characteristics such as high sensitivity, high resolution, low power consumption, fast response, anti-water vapor interference, no poisoning, high stability and long life. This sensor is directly compatible with the DFRobot Arduino IO expansion board thanks to its external DFRobot Gravity interface. This characterizes the simplicity of use of the sensor since it is plug and play and does not need additional wiring. This product could be widely used in HVAC, indoor air quality monitoring, industrial process and security protection monitoring, agriculture and animal husbandry production process monitoring.



Board Overview

SEN0219 Analog Infrared CO2 Sensor For Arduino Board Overview
Num Label Description
1 Signal Analog Output (0.4~2V)
2 VCC VCC (4.5~5.5V)


The sensor should be calibrated regularly. The cycle time should be no more than 6 months. There are two calibration methods.

SEN0219 Analog Infrared CO2 Sensor For Arduino Manual zero calibration


In this tutorial, we'll show you how to use DFRobot Infrared Sensor within 5 minutes.


Connection Diagram

SEN0219 Analog Infrared CO2 Sensor For Arduino Manual Connection Diagram

Data Analysis

When the IR CO2 sensor get 5V power supply, it will output 0.4~2V analog value, corresponding to 0~5000 ppm; And when the sensor finds faults during the self-checking process, it will output 0V.

SEN0219 Analog Infrared CO2 Sensor For Arduino Manual Data Analysis

Sample Code

 * Infrared CO2 Sensor0-5000ppm
 * ****************************************************
 * This example The sensors detect CO2
 * @author lg.gang(
 * @version  V1.0
 * @date  2016-7-6
 * GNU Lesser General Public License.
 * See <> for details.
 * All above must be included in any redistribution
 * ****************************************************/
int sensorIn = A0;

void setup(){
  // Set the default voltage of the reference voltage

void loop(){
  //Read voltage
  int sensorValue = analogRead(sensorIn);

  // The analog signal is converted to a voltage
  float voltage = sensorValue*(5000/1024.0);
  if(voltage == 0)
  else if(voltage < 400)
    int voltage_diference=voltage-400;
    float concentration=voltage_diference*50.0/16.0;
    // Print Voltage
    //Print CO2 concentration

Expected Results

Open your IDE serial monitor and wait for 3 minutes (preheat process), then you'll see the finial data. (Indoor Temperature: 30℃)

SEN0219 Analog Infrared CO2 Sensor For Arduino Manual Expected Results


Q. Can I use the CO2 sensor with 3.3V microcontroller?
A. Yes, but you need to power the C02 sensor with 5V power supply seperately, and change the conversion formula * float voltage = sensorValue\(3300/1024.0)**
Q. How do I calibrate?
A. The sensor should be calibrated regularly. The cycle time should be no more than 6 months. Manual calibration of zero point is to calibrate the sensor's HD pin input low level (0V) to calibrate the zero point, and the low level shall last more than 7 seconds.The calibration of zero point is 400 ppm, Please ensure that the sensor is stable for more than 20 minutes at 400ppm.
For any questions, advice or cool ideas to share, please visit the DFRobot Forum.

More Documents

DFshopping_car1.png Shopping from <Gravity: Analog Infrared CO2 Sensor For Arduino or DFRobot Distributor.

Turn to the Top