_SKU_SEN0219_Infrared_CO2_Sensor_0 5000ppm_二氧化碳传感器模块 - jimaobian/DFRobotWikiCn GitHub Wiki
简介
DFRobot最新推出高精度红外二氧化碳传感器,有效量程可达0~5000ppm。传感器利用非色散红外(NDIR)原理对空气中存在的CO2进行探测,具有很好的选择性和无氧气依赖性,使用寿命可达5年。并且内置温度补偿,支持DAC输出,仅需要一个模拟口,就可读取当前CO2气体浓度,使用非常简单,兼容各类单片机和传感器。 DFRobot红外激光传感器是将成熟的红外吸收气体检测技术与精密光路设计、精良电路设计紧密结合而制作出的高性能传感器,具有高灵敏度、高分辨率、低功耗,响应快、抗水汽干扰、不中毒、稳定性高、使用寿命长等特点。外置Gravity接口使得传感器能够直接兼容DFRobot Arduino IO扩展板,即插即用,无需额外接线。可广泛应用于暖通制冷与室内空气质量监控、工业过程及安全防护监控、农业及畜牧业生产过程监控等。 此款为高精度,短量程,模拟量输出形式的传感器,如果您需要更大的量程范围,而对精度要求并不高,可以选择我们的另一款UART接口的红外二氧化碳传感器,拥有0~50000 PPM的总量程,精度稍低一些,±(50ppm+5%读数),适合树莓派这类没有ADC采样功能的主控器。Gravity UART 红外二氧化碳传感器(0~50000).
特性
- 气室采用镀金处理,防水防腐蚀
- 高灵敏度、低功耗
- 优异的稳定性
- 温度补偿,卓越的线性输出
- 使用寿命长
- 抗水汽干扰、不中毒
- 兼容3.3V和5V主控器(注意:使用3.3V设备时,仍然可以5V供电)
产品参数
- 检测气体:二氧化碳
- 供电电压:4.5~5.5V DC
- 平均电流:<60mA@5V
- 峰值电流:150mA@5V
- 输出信号:模拟输出 (0.4~2V)
- 测量范围:0~5000ppm
- 精度:±(50ppm+3%读数)
- 预热时间:3min
- 响应时间:120s
- 工作温度:0~50℃
- 工作湿度:0~95%RH(无凝结)
- 寿命:>5 年
- 尺寸:37mm*69mm
引脚说明
| | | | --------------------------- | | | : | |
标号 | 名称 | 功能描述 |
1 | Signal | 信号输出(0.4~2V) |
2 | VCC | 电源+ |
3 | GND | 电源- |
表名
快速上手
本次教程意在让您在5分钟内,学会如何使用红外二氧化碳传感器去测量当前空气中的二氧化碳浓度
准备
- 硬件
- DFRduino UNO x1
- 红外二氧化碳传感器 x1
- IO 传感器扩展板 V7.1 x1
- 连接线 x1
- 软件
- Arduino IDE 点击下载Arduino IDE
接线图
数据解析
当传感器得到5V供电时,模块输出电压0.4~2V,对应气体浓度0~5000ppm。当传感器自检发现故障时,传感器输出电压0V,具体特性如下图。
样例代码
下载Arduino代码,打开右上角窗口监视器,查看数据
|
/***************************************************
* Infrared CO2 Sensor0-5000ppm
* ****************************************************
* This example The sensors detect CO2
*
* @author lg.gang([email protected])
* @version V1.0
* @date 2016-7-6
*
* GNU Lesser General Public License.
* See <http://www.gnu.org/licenses/> for details.
* All above must be included in any redistribution
* ****************************************************/
int sensorIn = A0;
void setup(){
Serial.begin(9600);
// Set the default voltage of the reference voltage
analogReference(DEFAULT);
}
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)
{
Serial.println("Fault");
}
else if(voltage < 400)
{
Serial.println("preheating");
}
else
{
int voltage_diference=voltage-400;
float concentration=voltage_diference*50.0/16.0;
// Print Voltage
Serial.print("voltage:");
Serial.print(voltage);
Serial.println("mv");
//Print CO2 concentration
Serial.print(concentration);
Serial.println("ppm");
}
delay(100);
}
|}
结果
请至少耐心等待3分钟(预热阶段),直到数据稳定。此时传感器即可显示CO2浓度(测试环境为:室外、30℃)
常见问题
还没有客户对此产品有任何问题,欢迎通过qq或者论坛联系我们!
| 问: 这款二氧化碳传感器能够使用3.3V的主控器吗? |
- 答: 可以的,不过请注意,传感器必须使用5V供电,并修改该代码中的关系式 '''float voltage = sensorValue*(3300/1024.0); '''
| 问: 为什么这款二氧化碳传感器读数不稳定? |
- 答: 由于这款二氧化碳传感器灵敏度比较高,所以会造成读数起伏略大,可以通过若干数值取平均值的方式降低读数的偏差。具体可参考网址:https://www.dfrobot.com/forum/viewtopic.php?f=8\&t=2691
| 更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。 |