學習目標 : 認識faya瓦斯感應模組的功能及使用方式
學習時間 : 35min
示範模組 : (1) fayaduino brickNano
(2) faya瓦斯感應模組
(3) faya蜂鳴器模組
工具 : (1) 樂高積木底板 (相容)
====================功能介紹====================
瓦斯感應器的功能為感測瓦斯濃度的強弱,faya瓦斯感應模組透過面板上的瓦斯感測器,模組中央的金屬網狀外殼,測得瓦斯的濃度的強弱,將結果以電壓的形式在Vout埠輸出,模組可透過可變電阻來調整輸出範圍,當作靈敏度的設定。
- 感應到的瓦斯濃度愈強,Vout輸出的電壓愈高
- 可變電阻可用來調整瓦斯感應的靈敏度
====================原理知識====================
以下解釋提供給有需要知道背後原理的人:
faya瓦斯感應模組透過一瓦斯感測器(MQ-5)來偵測瓦斯濃度的強弱,平時未有瓦斯或者感測到的瓦斯濃度很低時,元件的電阻值較高,反之,當感測器感應到瓦斯存在時,元件內部的化學變化會讓元件的電阻降低。有了這層關係,我們用以下的電路,設計出能調整靈敏度的瓦斯感測器,其中MQ-5是瓦斯感測器,可將之視為一個和瓦斯濃度成反比的電阻,VR1是可變電阻。
我們用以下範例解釋輸出電壓與瓦斯濃度強弱的關係,另外也解釋可變電阻的功用,首先假設:
瓦斯感測器在未偵測到瓦斯時的電阻值為20K
瓦斯感測器在偵測到瓦斯時阻值為1K
當可變電阻調在100K位置時:
在未偵測到瓦斯時,輸出Vout = (100K / (100K+20K) ) x Vcc = 0.83Vcc
在偵測到瓦斯時,輸出Vout = (100K / (100K+1K) ) x Vcc = 0.99Vcc
因此當感應到的瓦斯濃度愈高,Vout輸出的電壓愈高
現在把可變電阻調到50K位置:
在陰暗的環境下, 輸出Vout = (50K / (50K+20K) ) x Vcc = 0.71Vcc
在光亮環境下,輸出Vout = (50K / (50K+1K) ) x Vcc = 0.98Vcc
和上一個例子相比,得知同一瓦斯濃度下,較低的可變電阻值,會得到較低的輸出電壓,意謂著偵測門檻降低了,我們可以利用這點應用在所需的專題上 (例如改變可變電阻來降低或提高偵測瓦斯濃度的靈敏度)
註: 順時針調整可變電阻時,VR1阻值增加,反之降低
===================範例實作(1)===================
了解模組功能(原理)後,我們用以下範例來展示模組的功能:
目標:
(1)當偵測到瓦斯時,蜂鳴器發出告警聲
接線:
(1) 電源線連接
如下圖所示,連接的說明請看這篇文章 或簡易版
(2) 訊號線連接
Arduino_A0 ===> 瓦斯感應器_VOUT
Arduino_D13 ===> 蜂鳴器模組_BZ
範例程式:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 2018/5/18 | |
// Faya-Nugget 範例程式 (GasSensor_1.ino) | |
// 單元: 模組介紹-faya瓦斯感應模組 | |
// 網址: https://fayalab.blogspot.com/2018/05/GasSensor.html | |
// 目標 (1) 當偵測到瓦斯時,蜂鳴器發出告警聲 | |
// 接線: Arduino ==> faya模組 | |
// A0 ==> Vout (瓦斯感應器) | |
// D13 ==> BZ (蜂鳴器模組) | |
int buzzerPin = 13; // 定義蜂鳴器腳位 | |
int gasValue = 0; // 瓦斯變數 | |
void setup() | |
{ | |
Serial.begin(9600); // 初始化串列傳輸,鮑率為9600bps。 | |
pinMode(buzzerPin, OUTPUT); | |
} | |
void loop() | |
{ | |
gasValue = analogRead(A0); | |
Serial.print("sensorValue = "); | |
Serial.println(gasValue); | |
delay(200); | |
if(gasValue>=800) //當偵測值超過800時 | |
{ | |
tone(buzzerPin,850,200); //蜂鳴器發出850Hz的響頻 | |
delay(120); | |
} | |
} | |
備註:
- L27: 將感應值設定到超過800時才產生告警聲
- L29: 蜂鳴器使用方式,請參考[模組介紹 : faya蜂鳴器模組]
- 程式上傳後,開啟串列埠監視視窗,利用螺絲起子調整類比輸出值,使其小於200
範例結果:
討論:
大家可以從影片中得知輸出結果和我們在背景知識導出的結果相同,瓦斯濃度愈高,電壓輸出值愈高,瓦斯濃度愈低,電壓輸出值愈低,大家不妨用螺絲起子調整模組上方的可變電阻(當順時針調整時,對地阻值VR1增加,逆時針調整時,對地阻值VR1減少),觀察阻值變化與輸出的關係!
歡迎大家在底下留言或到我們的粉絲團留言喔!
====================================
fayalab 粉絲團
FB本篇留言版
沒有留言:
張貼留言