感測器規格:
用於家庭、環境的一氧化碳探測裝置。適宜於一氧化碳、煤氣等的探測。
- 加熱電壓:5±0.2V(AC·DC)
- 工作電流:140mA
- 回路電壓:10V(最大DC 15V)
- 負載電阻:10K(可調)
- 檢測濃度範圍:10-1000ppm
- 清潔空氣中電壓:≤1.5V
- 靈敏度:≥3%
- 回應時間:≤1S(預熱3-5分鐘)
- 回復時間:≤30S
- 元件功耗:≤0.7W
- 工作溫度:-10~50℃(標稱溫度20℃)
- 工作濕度:95(標稱濕度65)
- 使用壽命:5年
- 尺寸大小:35mm×22mm×18mm
- 重量大小:6g
此感測器使用方式很簡單,電源使用5v,然後讀取AO腳位的ADC值即可,或是讀取DO腳位的狀態判過是否超標(使用上面的可變電阻調整閥值),但如果有讀取ADC值,那就沒必要使用DO了。
Raspberry PI PICO | MQ7 |
ADC (2) | AO |
GND | GND |
5V | VCC |
以下是讀取MQ7 ADC值的方法,並轉為ppm。
注意:ppm僅供參考,要準確還是需要校正,並不容易。
import math from machine import Timer, ADC # MQ7感測器 mq_adc = ADC(2) # 設定ADC腳位 conversion_factor = 3.3 / 65535 # 電壓比 mq_timer = Timer() # 是否進入測量氣體 tag_measure_mq = False # MQ7氣體感測器計算 def measure_mq_sensor(): # 參考https://github.com/swatish17/MQ7-Library/tree/master # MQ7 PPM 預設換算,未經過校正 coefficient_a = 19.32 #校正參數1 coefficient_b = -0.64 #校正參數2 v_in = 5.0 #感測器輸入電壓 adc_value = mq_adc.read_u16() v_current = adc_value * conversion_factor ratio = (v_in - v_current) / v_current ppm = coefficient_a * math.pow(ratio, coefficient_b) print("MQ7 一氧化碳濃度= " + str(ppm) + " ppm") # 開始更新螢幕資訊 def start_measure_mq(t): global tag_measure_mq tag_measure_mq = True def main(): global tag_measure_mq # 每秒量測一次 mq_timer.init(mode=Timer.PERIODIC, period=1000, callback=start_measure_mq) # 不斷檢查Tag是否被觸發,觸發後才去執行耗時處理,避免程式卡死 while True: if tag_measure_mq: measure_mq_sensor() tag_measure_mq = False # 開始執行 main()
輸出結果:
MQ7 一氧化碳濃度= 9.511034 ppm
MQ7 一氧化碳濃度= 9.479193 ppm
MQ7 一氧化碳濃度= 9.500527 ppm
MQ7 一氧化碳濃度= 9.511034 ppm
-END-
發佈留言