37款傳感器與模塊的提法,在網絡上普遍流傳,其實Arduino可以兼容的傳感器模塊確定是不止37種的。鑑於本人手頭積累了一些傳感器和模塊,依照實踐出真知(必定要動手作)的理念,以學習和交流爲目的,這裏準備逐一動手試試作實驗,無論成功與否,都會記錄下來---小小的進步或是搞不定的問題,但願可以拋磚引玉。 git
MQ-3氣體傳感器安全
所使用的氣敏材料是在清潔空氣中電導率較低的二氧化錫(SnO2)。當傳感器所處環境中存在酒精蒸汽時,傳感器的電導率隨空氣中酒精氣體濃度的增長而增大。使用簡單的電路便可將電導率的變化轉換爲與該氣體濃度相對應的輸出信號。 MQ-3氣體傳感器對酒精的靈敏度高,能夠抵抗汽油、煙霧、水蒸氣的干擾。這種傳感器可檢測多種濃度酒精氣氛,是一款適合多種應用的特種傳感器。網絡
工做原理oop
MQ-3屬於表面電阻控制型酒精氣體濃度氣敏傳感器,其敏感材料是活性很高的金屬氧化物半導體,最經常使用的如SnO2(二氧化錫)。當N型半導體的表面,在高溫下遇到離解能力較小(易失去電子)的還原性氣體時,氣體分子中的電子將向MQ3氣敏電阻表面轉移,使氣敏電阻中的自由電子濃度增長,電阻率下降,電阻減少。半導體式傳感器是利用一些金屬氧化物半導體材料,在必定溫度下,電導率隨着環境氣體成份的變化而變化的原理製造的,MQ-3酒精傳感器就是其中一種,它是利用二氧化錫在高溫下遇到酒精氣體時,電阻會急劇減少的原理製造的。性能
MQ-3可應用於家庭、工廠、商業場所的氣體泄漏監測裝置,防火,安全探測系統。氣體泄漏報警器.氣體檢漏儀。高靈敏度、快速響應恢復、優異的穩定性、長壽命、驅動電路簡單、電信號輸出強。學習
模塊優勢測試
可有效用於酒精、乙醇等氣體的檢測。壽命長、成本低廉,適用於民用氣體的檢測,高質量的半導體傳感器也可知足工業檢測的需求。ui
模塊缺點設計
須要預熱,穩定性較差,受環境溫度、溼度等因素影響較大;每一種傳感器的選擇性都不是惟一的,輸出參數也不能肯定,不宜應用於計量準確要求的場所。3d
MQ-3酒精乙醇傳感器模塊(半導體式表面電阻控制型)
規格參數
1. 探測範圍:10~1000ppm酒精
2. 特徵氣體:125ppm酒精
3. 加熱電壓:5±0.2V(AC·DC)
4. 迴路電壓:≤24V DC
5. 負載電阻:可調
6. 清潔空氣中電壓:≤1.5V
7. 靈敏度:Rin air/Rin typical gas≥5
8. 響應時間:≤10S
9. 恢復時間:≤30S
10.元件功耗:≤0.9W
11.主要芯片:LM39三、MQ-3氣體傳感器
12.使用壽命:5年
模塊電原理圖
電氣性能
主要芯片:LM39三、MQ-3氣體傳感器
輸入電壓:DC5V 功耗(電流):150mA
DO輸出:TTL數字量0和1(0.1和5V)
AO輸出:0.1-0.3V(相對無污染),最高濃度電壓4V左右
特別提醒:傳感器通電後,須要預熱20S左右,測量的數據才穩定,傳感器發熱屬於正常現象,由於內部有電熱絲,若是燙手就不正常了。
模塊特點
一、採用優質雙面板設計,具備電源指示和TTL信號輸出指示
二、具備DO開關信號(TTL)輸出和AO模擬信號輸出
三、TTL輸出有效信號爲低電平。(當輸出低電平時信號燈亮,可直接接單片機或繼電器模塊)
四、模擬量輸出電壓,濃度越高電壓越高
五、對酒精檢測有較好的靈敏度
六、有四個螺絲孔便於定位
七、產品外形尺寸:32(L)*20(W)*22(H)
八、具備長期的使用壽命和可靠的穩定性
九、快速的響應恢復特性
十、用於機動車駕駛人員及其餘嚴禁酒後做業人員的現場檢測,也用於其餘場所乙醇蒸汽的檢測,探測酒精範圍:探測範圍 10~ 1000ppm。
模塊接口定義(以實物爲準)
1. AO: 傳感器模擬量輸出
2. DO: 數字量輸出(比較器輸出)
3. GND: 接地
4. VCC: 電源輸入,範圍: 3V-24V
很是簡單的一個測試程序,讀讀串口數據,看看實驗波形
/* 【Arduino】108種傳感器模塊系列實驗(資料+代碼+圖形+仿真) 實驗三十七:MQ-3酒精乙醇傳感器模塊(半導體式表面電阻控制型) */ void setup() { Serial.begin(9600); pinMode(A0, INPUT); } void loop() { Serial.println(analogRead(A0)); delay(200); }
預熱以後的串口數據,大概在250先後
然後,串口輸出的數字一直降低,大概十分鐘先後,穩定在75左右
實驗用的是居家75%的消毒酒精
這模塊確實對酒精很敏感,最高升到800多
擰緊酒精瓶蓋後,數據有個緩慢的降低過程
把酒精撒到地上一點,也能檢測到,數據幅度小不少
一個檢測酒精濃度的可視化報警程序,目前穩態數據在68
檢測到超標酒精濃度(大於400),報警燈亮
/* 【Arduino】108種傳感器模塊系列實驗(資料+代碼+圖形+仿真) 實驗三十七:MQ-3酒精乙醇傳感器模塊(半導體式表面電阻控制型)之二 */ int Buzzer = 8; // 定義數字口8 爲Buzzer (蜂鳴器) void setup() { pinMode(Buzzer, OUTPUT); // 定義數字口8 爲輸出模式 Serial.begin(9600); } void loop() { int val; val = analogRead(A0); Serial.println(val, DEC); while (val < 400) { digitalWrite(Buzzer, LOW); //蜂鳴器不響 val = analogRead(A0); Serial.println(val, DEC); } digitalWrite(Buzzer, HIGH); // 蜂鳴器響 }
/* 【Arduino】108種傳感器模塊系列實驗(資料+代碼+圖形+仿真) 實驗三十七:MQ-3酒精乙醇傳感器模塊(半導體式表面電阻控制型)之三 */ const int gasSensor = 0; void setup() { Serial.begin(9600); // sets the serial port to 9600 } void loop() { float voltage; voltage = getVoltage(gasSensor); Serial.println(voltage); delay(1000); } float getVoltage(int pin) { return (analogRead(pin) * 0.004882814); // This equation converts the 0 to 1023 value that analogRead() // returns, into a 0.0 to 5.0 value that is the true voltage // being read at that pin. }