煙霧檢測傳感器使用的是MQ-2煙霧傳感器。MQ-2型煙霧傳感器屬于二氧化錫半導體氣敏材料,屬于表面離子式N型半導體。處于200~300攝氏度時,二氧化錫吸附空氣中的氧,形成氧的負離子吸附,使半導體中的電子密度減少,從而使其電阻值增加。當與煙霧接觸時,如果晶粒間界處的勢壘收到煙霧的調至而變化,就會引起表面導電率的變化。利用這一點就可以獲得這種煙霧存在的信息,煙霧的濃度越大,導電率越大,輸出電阻越低,則輸出的模擬信號就越大。
使用MQ-2煙霧傳感器來檢測周圍環境煙霧濃度,再通過小凌派開發板采集信號。因為采集的信號是電壓值所以通過adc轉換成數字信號。這里有個需要注意的地方RK2206的ADC默認參考電壓是內部2.4v所以初始化ADC時通過配置soc_con29 寄存器改成外部3.3v參考電壓。
參考代碼
讀取ADC電壓
計算ppm值
阻值R與空氣中被測氣體的濃度C的計算關系式
log R = mlog C + n (m,n均為常數)
傳感器的電阻計算
Vc為回路電壓,VRL是傳感器4腳6腳輸出電壓,RL是負載
ppm值校準
因為使用的是無源蜂鳴器,所以通過pwm驅動蜂鳴器報警。
pwm初始化
pwm 啟動
pwm停止
蜂鳴器報警控制,需要報警時啟動pwm,不需要報警時停止pwm
整個模塊初始化
創建一個任務處理函數
這里需要注意的是ppm校準需要提前測試,再把值寫死到代碼里。
還有需要注意的是mq2傳感器需要預熱,即提前通電大約半分鐘到一分鐘左右。用手放在傳感器外殼感覺微微發熱即可。如果不預熱就開始測量其測量值會偏差很大,而且會隨著加熱而變化。
最后創建一個任務調用上面處理函數即可。
燒寫程序后通過串口打印結果
當檢測到煙霧超過設定值時蜂鳴器報警響起。低于設置值時蜂鳴器停止報警。這樣基于小凌派的煙霧報警功能就實現了。
-
蜂鳴器
+關注
關注
12文章
893瀏覽量
46095 -
檢測傳感器
+關注
關注
0文章
34瀏覽量
10710 -
煙霧報警
+關注
關注
0文章
5瀏覽量
8732 -
小凌派
+關注
關注
0文章
27瀏覽量
1240
發布評論請先 登錄
相關推薦
評論