李冉 朱思清 王翊 錢國明
【摘 要】本設計以ATmega382p單片機為控制中心,由GP2Y1010AU0F光學空氣質量傳感器測量空氣粉塵濃度,通過單片機內置的10位A/D轉換將模擬的電壓信號轉換成數字信號,得到粉塵濃度值,并由LCD1602顯示屏顯示出來。同時,設置濃度預警值并同測量值一起顯示在顯示屏上。當測量濃度超過預警值時,儀器就會報警。
【關鍵詞】粉塵;單片機;傳感器;A/D轉換
【Abstract】Adopts ATmega382p microcomputer as the control center of the design, uses GP2Y1010AU0F optical air quality sensor measuring air dust concentration, then through the 10 bit A/D conversion built in the microcomputer converting the analog voltage signal into digital signal, so that dust concentration can gained and finally showed out by the LCD1602. At the same time, set the warning value of the concentration and showed together with the measured value. When the measured concentration exceeds the warning value, the instrument will alarm.
【Key words】Dust; Microcomputer; Sensor; A/D Conversion
0 引言
隨著人類工業和經濟的快速發展,我們的環境污染越來越嚴重。除廢氣、廢水外,顆粒狀粉塵、煙塵向大氣排放所造成的污染已成為一個十分突出的問題。PM2.5,PM10,PM0.1及其吸附的重金屬粒子是霧霾的重要組成部分[1]。2012年2月,《環境空氣質量標準》新增了對PM2.5的檢測指標,PM2.5成為空氣質量標準之一。數據表明,我國空氣質量超標的城市中68%都存在可吸入顆粒物的問題[2]。由此可以看出粉塵對人類健康和生產的危害十分嚴重。所以,粉塵濃度的檢測和控制具有重要的意義。
本文介紹一種簡易粉塵濃度檢測器的設計,能夠對空氣粉塵進行采樣分析,可以測量出空氣中的粉塵濃度,測量數據直觀易懂,測量結果準確可靠。
1 系統工作原理
單片機選用ATmega328p,粉塵濃度傳感器選用夏普GP2Y1010AU0F灰塵傳感器,按鍵部分通過電阻與按鍵串聯將信號輸入模擬口,通過讀取模擬值的不同判斷按鍵值,顯示部分采用LCD1602并用采取I2C總線的8位遠程I/O擴展口芯片PCF8574進行引腳簡化。
將粉塵檢測器電源開關打開,當傳感器得到一個由粉塵濃度轉換得來的0~5V的電壓信號時,進入單片機,經過處理后轉變為十進制數通過I/O口在顯示屏上顯示出精確數值。數值量隨輸入電壓的擾動而變化。同時鍵盤設定預警值送入單片機,與測量值一同顯示出來。當采集的當前粉塵濃度大于預警值時,單片機驅動蜂鳴器報警。
2 系統電路設計
2.1 電路總體設計
以ATmega328p單片機為核心,主要包括單片機處理模塊,信號采集模塊,獨立按鍵模塊,顯示模塊和蜂鳴器報警模塊。系統通過信號采集模塊采集空氣中的粉塵,得到0~5V的電壓信號后,由單片機內部自帶的10位ADC進行模數轉換得到粉塵濃度,與此同時,通過獨立按鍵模塊設定濃度預警值,通過液晶顯示模塊將粉塵濃度和預警值同時顯示在顯示屏上。當檢測值大于預警值時就會自動通過蜂鳴器報警模塊報警。整個系統的框架結構如圖所示:
2.2 單片機處理模塊
設計選用ATmega328p單片機,該單片機配合Arduino uno使用,可以更加方便的用外接模塊進行拓展,如wifi模塊、SD卡接口模塊、基于w5100芯片的Ethernet模塊等,并且其內部自帶10位六通道ADC可以用來轉換傳感器輸出的信號,從而得到粉塵濃度。
2.3 信號采集模塊
GP2Y1010AUOF是一款由日本夏普公司開發的光學濃度檢測傳感器。此傳感器內部成對角線分布的紅外發光管和光電晶體管,利用光敏原理來工作,依靠輸出脈沖的高度來判斷顆粒物濃度。同時,傳感器內部有信號放大電路,可以對光電信號進行放大。其內部結構圖如圖2所示:
傳感器內,紅外發光二極管和光電晶體管按對角位置布置,利用發光二極管發射光線,利用晶體管接受二極管發射的光,從而引起電壓的變化,這時傳感器里的空氣傳導設備就會產生一定的作用使空氣流通。此設計能夠檢測到小的微粒,甚至非常小的煙草顆粒,測量結果比較準確。
由于GP2Y1010AUOF對驅動的LED的脈沖要求較高,輸入信號采樣周期為10ms±1ms;輸入高脈沖的寬度為0.32ms±0.02ms。所以對于采樣信號,需要等待輸入信號出現高脈沖以后再計時0.28ms進行采樣[3]。
2.4 獨立按鍵模塊
按鍵部分是通過電阻與按鍵串聯將信號輸入模擬口,通過讀取模擬值的不同判斷按鍵值。因為A/D轉換是將模擬的0~5V電壓轉換成八個二進制位,八個二進制轉換成十進制的范圍為0~255,所以只需設置三個獨立按鍵分別獨立輸入預警值的百位,十位,個位。鍵盤每按下一次則相應位上數據增加1,當數據設定完成后通過I/O口輸入單片機,通過單片機的處理轉換為三位十進制的濃度預警值,然后顯示在顯示屏上。
2.5 顯示模塊
顯示模塊采用LCD1602并用采取I2C總線的8位遠程I/O擴展口芯片PCF8574進行引腳簡化。LCD1602是工業字符型液晶,可同時顯示16×2即2行,每行顯示16個字符液晶模塊(顯示字符和數字)。因為要同時顯示粉塵濃度的檢測值和預警值,所以LCD1602的兩行顯示功能已經滿足設計。
2.6 蜂鳴器報警模塊
當采集到的環境中的粉塵濃度大于預警值時,單片機就會驅動蜂鳴器報警,然后采取相應措施降低粉塵濃度或者使人員撤離工作現場。由于蜂鳴器的工作電流一般比較大,以致于單片機的I/O口是無法直接驅動的,所以要利用放大電路來驅動。我們采用三極管來放大電流。
3 系統軟件設計
軟件系統設計主要分為系統初始化模塊、驅動傳感器模塊,A/D模數轉換模塊,粉塵濃度計算和顯示等模塊,單片機通過軟件程序實現對硬件設備的控制,測量并顯示粉塵濃度。軟件部分設計需要利用單片機所產生的周期為10ms的脈沖波形驅動傳感器內部的LED發光,并對信號進行A/D轉換,同時進行LCD1602的顯示和定時器定時。單片機產生的脈沖波形加在GP2Y1010AU0F上,傳感器將輸出一個0~5V電壓,可通過A/D轉換得到相應的粉塵濃度值,最后通過LCD1602顯示出來,如果空氣粉塵濃度超過了預警值,系統將會報警。
4 總結
本文主要介紹了簡易粉塵檢測器的設計,在單片機的控制下,完成數據的采集、顯示、預警值設置及蜂鳴器預警等系統分模塊的程序設計,然后結合各模塊的硬件電路來實現每個模塊的功能,從而實現整個系統的功能。結果表明,該粉塵檢測儀測量結果準確可靠。
【參考文獻】
[1]馬爽.恒溫恒濕培養箱智能控制系統的研制[D].廣州:南方醫科大學,2010.
[2]GB3095-2012 環境空氣質量標準[S].
[3]蘭冰芯,諶海云,陳東,吉寧.基于單片機的PM2.5測試儀的設計與實現[J].物聯網技術,2014(11):32-34.
[責任編輯:湯靜]