產品手冊
產品規格書
-
-
產品名稱:
二氧化碳傳感器
產品型號:
MQC02-1
版本:
V1.0
制定人:
賀根文
審核人:
袁超
一、產品描述
MQCO2-1是一款基于非分光帶紅外吸收原理的二氧化碳傳感器,能夠實時檢測空氣中的二氧化碳濃度,具有自校準、體積小、性能,一致性好,無氧氣依賴性等特點。本產品內置溫度補償,同時具有串口輸出、PWM輸出兩種通訊方式,方便使用。
本產品廣泛應用于空氣質量檢測儀、空氣凈化設備、新風系統、空調控制、智能家居、物聯網環境信息采集、農業生產、冷鏈運輸 等相關領域。
二、技術指標
量程范圍
400~5000ppm
精度
± (50ppm+5%*讀數)
通訊接口
URAT_TTL(3.3V)
PWM(3.3V)
分辨率
1ppm
響應時間
小于20s
數據更新時間
4s
預熱時間
小于25s (可操作)
小于2min (90%精度)
小于10min (精度)
供電電壓
DC (5.0±0.5)V
工作電流
平均小于70mA,峰值小于150mA
工作條件
-10℃~+50℃,0~95%RH,無凝結
存儲條件
-30~+70℃,0~95%RH,無凝結
產品壽命
大于5年
產品尺寸
32.5mm×22.2mm×19.7mm(L*W*H)
針腳間距
2.54mm
三、外形及結構尺寸
32.5mm×22.2mm×19.7mm(L*W*H),公差±0.3mm
四、接口定義
序號
名稱
描述
1
NC
預留
2
RX
串口端 (電路板串口接收端)
3
TX
串口端 (電路板串口發送端)
4
NC
預留
5
NC
預留
6
+5V
電源輸入端 (+5V 端)
7
GND
電源輸入端 (接地端)
8
NC
預留
9
PWM
脈寬調制
五、串口通信協議
1.串口配置:9600 波特率,8 數據位,1 停止位,無奇偶校驗;
2.接收主機命令方式:
1) 接收主機命令:FE 04 00 03 00 01 D5 C5;
響應回復數據:FE 04 02 01 E5 6D 3F; 其中FE 04 02代表響應數據幀頭,01 E5,代 表二氧化碳濃度485ppm,6D 3F為CRC校驗數據;
2) 接收主機命令:64 69 03 5E 4E;
響應回復數據:64 69 03 01 0A 02 00 00 00 00 00 00 9B F0; 其中64 69 03 01代 表響應數據幀頭,0A 02代表二氧化碳濃度,02為高位,0A為低位,即20A,表示522ppm,9B F0為CRC校驗數據;
3) 接收主機命令:11 01 01 ED
響應回復數據:16 05 01 02 06 00 00 DC; 其中FE 16 05 01代表響應數據幀頭,02 06 代表二氧化碳濃度518ppm;
3.CRC計算
uint16_t CO2ModbusComm::modbus_calcuCRC(uint8_t *dataarray, uint16_t datalen)
{
uint8_t uchCRCHi = 0xFF ; /* CRC 的高字節初始化*/
uint8_t uchCRCLo = 0xFF ; /* CRC 的低字節初始化*/
uint16_t uIndex ; /* CRC 查詢表索引*/
uint16_t crc;
const uint8_t auchCRCHi[] = {
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,
0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81,
0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,
0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,
0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,
0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
0x40
};
const uint8_t auchCRCLo[] = {
0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4,
0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09,
0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD,
0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3,
0x1 1, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7,
0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A,
0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE,
0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26,
0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2,
0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F,
0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB,
0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5,
0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, 0x50, 0x90, 0x91,
0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C,
0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88,
0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C,
0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80,
0x40
};
while (datalen--) /* 完成整個報文緩沖區*/
{
uIndex = uchCRCLo ^ *dataarray++;/* 計算CRC */
uchCRCLo = uchCRCHi ^ auchCRCHi[uIndex];
uchCRCHi = auchCRCLo[uIndex];
}
crc = (uint16_t)uchCRCHi *256;
crc += (uint16_t)uchCRCLo;
return crc;
六、PWM計算方式
周期
1004ms±5%
中部周期
1000ms±5%
通過 PWM獲得當前CO2 濃度值的計算公式:Cppm=5000×(TH-2ms)/(TH+TL-4ms)
Cppm 為通過計算得到的 CO2濃度值單位為 ppm
TH 為一個輸出周期中輸出為高電平的時間
TL 為一個輸出周期中輸出為低電平的時間
七、注意事項
本產品采用NDIR 技術,燈泡點亮的時間段內需要的電流比較大,建議電源電流大于 300mA。
從結露狀態進入非結露狀態,2 小時內系統可以恢復到正常工作狀態。
請盡量避免震動,如果經過震動、跌落、焊接時間長可能會使傳感器的測量準確性變差。如果發生嚴重的震動或跌落情況后,需要驗證產品的準確度。
不要在粉塵密度大的環境長期使用。
避免在含有 HF,H2S,SO2,HCL,NOX,NH3,PH3,CL2,F2, O3,H2O2 等酸性、堿性、強氧化性氣體環境中長期使用。
避免對外殼施加任何方向的外力,會影響傳感器性能,并可能造成損壞
請勿直接觸摸,確保操作人員佩戴靜電釋放手環。
本產品外殼沒有接地,對 ESD 防護要求比較高的應用,請聯系廠家技術支持