基於 stm32f1 的GP2Y1010AU氣體檢測模塊使用說明

本人在校學生一個,最近是使用到來GP2Y1010AU氣體檢測模塊,這個模塊標識的說可以檢測PM2..5,但是實際運用過程中,發現可能達不到這個精度。

話不多說,先上乾貨。實物以及引腳圖。這裏參考了一篇前輩的博客,就順手截圖過來(容許我偷個懶)

附上前輩的原文鏈接:https://blog.csdn.net/qq_33160790/article/details/78839529

先聲明:

1.實際上不用接模塊附帶的電容電阻,也可以正常工作。

2.商家沒有現成的stm32代碼,所以,還是老老實實看下這篇博客。

3.遇到新的模塊,知識,甚至困難,依舊要依靠自己強大的學習能力去征服。

 

初次拿到這個模塊的同學估計也是一臉蒙逼,怎麼用,引腳怎麼都不懂,小編爲此苦幹半天才實現基本數據讀取,也是很惱火,所以寫這麼一篇博客報復無良商家。

從上圖可知道,具體的接線方式.(將arduino換成32單片機的引腳就可以了,只不過進行不同模式的配置)

解答1:LED-GND是什麼鬼?這個代表是模塊內部的LED燈的GND,(閱讀手冊可知,測量空氣顆粒物濃度依據光學原理,所以,裏邊是有LED燈存在的,且是發射紅外線),同理,標識LED,就是對應的VCC(有點不嚴謹,應該說是可控的VCC)

解答2:如何讀取數據?將模塊的5號引腳接入單片機的ADC採集引腳即可。

解答3:爲何LED引腳要接入DAC輸出引腳呢?這個需要去查看該模塊的數據手冊,

根據 LED 驅動週期(脈衝週期:T (ms) ),LED 驅動時間(脈衝:寬度 Pw(ms) )輸出

電壓會變動,規格書特性的規格值是脈衝週期 T10msPw0.32ms,取樣時

間:0.28ms,根據此條件變動(取樣時間可以自己設定,但是廠家給的手冊是10ms.....),規格書上規定的特性值(無塵時輸出電壓、檢出感度) 也隨之變動。

 

然後,通過stm32的ADC例程代碼,就可以實現簡單的數據讀取了(記得調整LED的驅動時間,即是驅動條件,查看微博客末尾的文章鏈接)

實際操作步驟:

正常連線。

初始化一個ADC通道,以及一個觸發脈衝引腳(不用PWM或者定時器,採用最簡單的定時拉高拉低就能實現觸發效果)。

通過ADC讀取電壓並轉換爲數值。

結合公式算出顆粒物的濃度。(見模塊參考手冊)

手冊鏈接:https://pan.baidu.com/s/1My-k_nrXNgmyyIeJnCLaJw      提取碼:c0pj

鏈接:https://pan.baidu.com/s/1My-k_nrXNgmyyIeJnCLaJw
提取碼:c0pj
 

測量結果如圖:

(1)部分是:我在實驗室內測得數據。

(2)部分是:我在傳感器旁邊放了一杆煙所測得的。

有實戰項目的話,我會在後邊不斷更新。代碼簡單,就不用再貼上源碼了。

 

每一個少年,心中都應有一片屬於自己的江湖。

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章