一. 簡介
ZE08-CH2O型電化學甲醛模組是一個通用型、小型化模組。 利用電化學原理對空氣中存在CH2O(甲醛)進行探測,具有良好的選擇性,穩(wěn)定性。 內置溫度傳感器,可進行溫度補償; 同時具有數字輸出與模擬電壓輸出,方便使用。
ZE08-CH2O傳感器模塊是將成熟的電化學檢測技術與精良的電路設計緊密結合,設計制造出的通用型氣體模組。
二. 模塊參數
1.特點

2.引腳說明

ZE08-CH2O模塊內部已集成了數據處理電路,將甲醛濃度信號轉換為電信號,最后轉化為數據信號,通過串口(UART)發(fā)送出來;
ZE08-CH2O模塊也支持模擬信號輸出,即Pin2腳DAC,將信號轉化為0-2V電壓信號,連接至單片機ADC轉換引腳,實現模擬信號的轉化。
3.參考電路

控制電路采用了串口(UART)的通訊方式,模塊只需接上5.0V電源,并將UART引腳接到單片機的UART引腳上。
三. 通訊協(xié)議
ZE08-CH2O模塊采用串口通訊,串口波特率等參數如下,波特率出廠默認為9600,不可更改:

通信分為主動上傳式和問答式,出廠默認主動上傳,每間隔1S發(fā)送一次濃度值,命令行格式如下:
1.主動上傳式指令

所得到的氣體濃度計算公式為:
氣體濃度值=氣體濃度高位*256+氣體濃度低位
2.問答式指令
問答式指令即需要單片機主動發(fā)送讀取濃度值指令,模塊才會返回當前的濃度值。
切換到問答式,命令行格式如下:

讀氣體濃度值格式如下:

模塊接收到讀取濃度指令后,就會返回一條氣體濃度值數據:

四. 控制程序
此次例程采用了模塊默認的主動上傳式模式,每1s接收一個甲醛濃度值。
void show()      //顯示當前數據,LCD第一行
{
  LCD1602_write(0,0x80);
  LCD1602_writebyte("CH2O:");      //顯示當前的甲醛濃度值
  LCD1602_write(1,0x30+ch2o/10000%10);
  LCD1602_writebyte(".");
  LCD1602_write(1,0x30+ch2o/1000%10);
  LCD1602_write(1,0x30+ch2o/100%10);
  LCD1602_write(1,0x30+ch2o/10%10);
  LCD1602_write(1,0x30+ch2o%10);
  LCD1602_writebyte("mg/m3");
}
void main()
{
  uchar h,l;
  LCD1602_cls();    //LCD 1602   調用初始化程序
  TMOD=0x21;  //配置定時
  TH0=0x4c;    //50ms  定時賦值
  TL0=0x00;
  ET0=1;
  TR0=1;
  TH1=0xfd;    //串口波特率定時初始
  TL1=0xfd;
  SCON=0x50;  //只發(fā)送
  EA=1;    //打開定時總中斷
  ES=1;    //打開串口中斷        
  TR1=1;
  h=byte_read(0x2000);
  l=byte_read(0x2001);   //讀取保存的數據
  ch2o_H=h*256+l;
  if(ch2o_H>700)
  ch2o_H=80;
  while(1)
  {
    show();     //顯示函數
    key();     //按鍵處理程序
  }
}
void UART_4() interrupt 4 //處理接收的串口數據,接收甲醛傳感器指令
{
  if(RI)
  {
    RI=0;   //RI 置0
    UART_dat[bz]=SBUF;    //暫存串口數據
    switch(bz)
    {
      case 0:
        if(UART_dat[bz]==0xFF) bz=1;
        else bz=0; 
      break;
      case 1:
        if(UART_dat[bz]==0x17) bz=2;
        else bz=0; 
      break;
      case 2:
        if(UART_dat[bz]==0x04) bz=3;
        else bz=0; 
      break;
      case 3:
        if(UART_dat[bz]==0x00) bz=4; 
        else bz=0; 
      break;
      case 4:
        bz=5;   
      break;
      case 5:
        bz=6; 
      break;
      case 6:
        if(UART_dat[bz]==0x13) bz=7;   
        else bz=0; 
      break;
      case 7:
        if(UART_dat[bz]==0x88) bz=8;  
        else bz=0; 
      break;
      case 8:  //校驗接收的數據  正確則處理接收的數據
        if((UART_dat[bz]+UART_dat[1]+UART_dat[2]+UART_dat[3]+UART_dat[4]+UART_dat[5]+UART_dat[6]+UART_dat[7])%256==0)
        {
          ch2o=UART_dat[4]*256+UART_dat[5];
          ch2o=ch2o*13.392857;
          bz=0;
        }else
        {
          bz=0;   
        }
      break;
    }
  }
- 
                                傳感器
                                +關注關注 2573文章 54014瀏覽量 782408
- 
                                模塊
                                +關注關注 7文章 2817瀏覽量 52559
- 
                                電路設計
                                +關注關注 6729文章 2565瀏覽量 217365
- 
                                dac
                                +關注關注 44文章 2506瀏覽量 196059
- 
                                指令
                                +關注關注 1文章 617瀏覽量 37243
發(fā)布評論請先 登錄
這家瑞士傳感器廠商的新型甲醛傳感器為何能獨立潮頭?
ZE08-CH2O甲醛傳感器,各位有關于它的電路原理圖嗎?
怎樣去設計一種基于51單片機的甲醛濃度顯示及報警系統(tǒng)
求一種基于51單片機的甲醛濃度檢測報警系統(tǒng)設計方案
ZE08-CH2O傳感器模塊的特點及其引腳說明
【賽昉科技昉·星光RISC-V單板計算機試用體驗】Ubuntu Server 22.04 UART讀取ZE08-CH2O 甲醛數據
ZE07-CH2O甲醛模組說明書1.8
ZE08-CH2O電化學甲醛傳感器的數據手冊免費下載
 
    
dfrobotHCHO甲醛傳感器簡介
 
    
45-基于51單片機的甲醛濃度顯示及報警系統(tǒng)設計
 
    
45-基于51單片機的甲醛濃度檢測報警系統(tǒng)
 
    
 
           
        
 
         甲醛傳感器模塊ZE08-CH2O簡介
甲醛傳感器模塊ZE08-CH2O簡介 
                 
  
            
             
             
                 
             工商網監(jiān)
工商網監(jiān)
        
評論