2017年4月15日 星期六

Arduino MH-Z14 NDIR CO2 Sensor 測試

MH-Z14 原廠介紹

      MH-Z14二氧化碳氣體傳感器(以下簡稱傳感器)是一個智能通用型、小型傳感器,利用非色散紅外(NDIR)原理對空氣中存在的CO2進行探測,具有很好的選擇性和無氧氣依賴性,壽命長。內置溫度補償;同時具有數字輸出與模擬電壓輸出,方便使用。該傳感器是將成熟的紅外吸收氣體檢測技術與精密光路設計、精良電路設計緊密結合而製作出的高性能傳感器。

傳感器特點

高靈敏度、高分辨率、低功耗
提供UART、模擬電壓信號、PWM波形等多種輸出方式
響應時間快
溫度補償,卓越的線性輸出                        
優異的穩定性
使用壽命長
抗水汽干擾、不中毒

產品型號MH-Z14
檢測氣體二氧化碳
工作電壓4.5~5.5 V DC
平均電流< 85 mA
接口電平3.3 V
測量範圍0~5%VOL範圍內可選(詳見表2)
輸出信號0.4~2 V DC
UART
PWM
預熱時間3 min
響應時間T90 < 90 s
工作溫度0~50 ℃
工作濕度0~95% RH (無凝結)
外形尺寸57.5 mm×34.7 mm×17 mm(L×W×H)
重 量15 g
壽 命> 5年



這程式是使用 URAT 接口,板子使用 Arduino Mega2560 LCD 使用 2004 (4 *20)。


// 載入 LCD  Library
#include <LiquidCrystal.h>

//      LCD 接腳:  rs, enable, d4, d5, d6, d7 
LiquidCrystal  lcd(13, 12, 11, 10 , 9, 8);

// MH-Z14 初始化指令

byte QueqyPkt[]={0xFF,0x01,0x86,0x00,0x00,0x00,0x00,0x00,0x79};  
char ResponsePkt[9]; 

void setup() {
 //設定 LCM 為 20*4
lcd.begin(20, 4);         

//設定Serial2
Serial2.begin(9600);
}

void loop() {
  
//寫入MH-Z14 指令 
Serial2.write(QueqyPkt,9);
//讀取MH-Z14
Serial2.readBytes(ResponsePkt, 9);

// 轉成十進位數值 要使用unsigned int 才不會變成負值

unsigned int responseHigh = (int) ResponsePkt[2];
unsigned int responseLow = (int) ResponsePkt[3];
unsigned int ppm = (256*responseHigh)+responseLow;

//在LCD上顯示CO2 濃度
lcd.setCursor(0, 0);  
lcd.print("CO2 = ");
lcd.setCursor(8,0); 
lcd.print(ppm);
lcd.print(" ppm     ");
delay(2000);
}




4 則留言:

  1. 作者已經移除這則留言。

    回覆刪除
  2. 你好
    我有一些關於這個測試的問題想請教,不知道是否方便聯繫?
    謝謝!!!

    tom9030@gmail.com

    回覆刪除
  3. 作者已經移除這則留言。

    回覆刪除