MQ-3气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。当传感器所处环境中存在酒精蒸汽时,传感器的电导率随空气中可燃气体浓度的增加而增大。对不同浓度有不同的电阻值,使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。可以抵抗汽油、烟雾、水蒸气的干扰。这种传感器可检测多种浓度酒精气氛,是一款适合多种应用的低成本传感器。传感器特设M3固定安装孔,使用宽电压LM393比较器,信号干净,波形好,驱动能力强,超过15mA,配可调精密电位器调节灵敏度。
使用前说明:接好传感器的VCC正与GND负,传感器上指示灯会亮。使用前先供电至少预热2分钟以上,传感器探头稍微发热属于正常现象,因为内部有电热丝,如果传感器非常烫手就不正常了。
AO模拟量:电压基本为0v左右,输出的电压会随着气体的影响慢慢增大,AO输出:0.1-0.3V(相对无污染),最高浓度电压4V左右;顺时针调节电位器(只针对TTL输出的灵敏度)感测的浓度加大,通过AD转换可以获得环境气体浓度大致数值。
DO数字开关量:DO可以与单片机直接相连,当传感器未检测到酒精气体时输出H高电平,检测到酒精后输出L低电平。我们可以通过单片机来检测DO引脚的H/L高低电平状态,由此来检测环境气体。另外DO数字量输出可以直接驱动5V继电器,由此可以组成一个简易的气体检测开关。
树莓派主板 | MQ-3酒精传感器 |
5V | VCC |
GND | GND |
GPIO1(BCM18) | DO |
import RPi.GPIO as GPIO import time # 配置GPIO GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) GPIO_PIN = 18 # 初始化引脚为输入模式,启用下拉电阻 GPIO.setup(GPIO_PIN, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) try: print("监测系统启动中...") last_status = None # 记录上次状态 while True: # 读取当前引脚状态 current_status = GPIO.input(GPIO_PIN) # 只在状态变化时更新显示 if current_status != last_status: if current_status == GPIO.HIGH: print("\r当前状态:检测正常", end="", flush=True) else: print("\r当前状态:含有酒精 ", end="", flush=True) last_status = current_status time.sleep(0.1) # 降低CPU占用率 except KeyboardInterrupt: print("\n监测已终止") finally: GPIO.cleanup()
运行此程序后结果如下,无酒精时显示正常
当有酒精或乙醇时显示检测到酒精
关于AO模拟量信号读取气体浓度可以参考这个资料:树莓派AD模拟量教程