提示:本教程参考自 FlexLua 官网 ShineBlink 学习板教学资料。
前言:半导体式传感器和电化学传感器概念科普
半导体传感器和电化学传感器的区别. 半导体传感器因其简单低价已经得到广泛应用,但是又因为它的选择性差和稳定性不理想目前还只是在民用级别使用。而电化学传感器因其良好的选择性和高灵敏度被广泛应用在几乎所有工业场合。
半导体式原理:半导体式气体传感器是依据金属氧化物半导体材料,在空气中,在遇到当空气的氧化还原状态发生变化时,半导体才料的电导率会发生相应的变化,比如:当空气中弥漫一定浓度的酒精蒸汽时,二氧化锡半导体材料的电导率会升高,电阻下降;而这种变化的幅度与气体的浓度直接相关,这就是半导体式气体传感器!我们家庭排油烟机下面的电子鼻就是使用的这种传感器。
电化学式原理:电化学式气体传感器是依据气体的电化学氧化和还原的原理制备的,他的原理是与我们的电池几乎相同。比如,我们检测一氧化碳,CO在电解池的阳极被氧化成二氧化碳,而电解电流与CO的浓度有关。电化学传感器准确而灵敏,但是,由于大量使用贵金属,另外制作工艺复杂,因此价格较高。气体探测器检测原理的核心部件是传感器按传感器划分有催化燃烧式传感器电化学传感器半导体传感器红外传感器和光离子传感器.催化燃烧式传感器属于高温传感器,其工作原理是气敏材料(如Pt电热丝等)在通电状态下,可燃性气体氧化燃烧或者在催化剂作用下氧化燃烧,电热丝由于燃烧而升温,从而使其电阻值发生变化。
一、传感器介绍
MQ-3酒精传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。当酒精传感器所处环境中存在酒精蒸汽时,气体传感器的电导率随空气中酒精气体浓度的增加而增大。使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。
MQ-3半导体酒精传感器对酒精的灵敏度高,可以抵抗汽油、烟雾、水蒸气的干扰。这种气体传感器可检测多种浓度酒精气氛,是一款适合多种应用的低成本传感器。
传感器参数:
三、传感器模块介绍
- 具有信号输出指示
- 双路信号输出(模拟量AO输出及TTL电平DO输出)
- TTL输出有效信号为低电平。(当输出低电平时信号灯亮)
- 模拟量输出0~5V电压,浓度越高电压越高。
1. 外观结构
2. 电路原理图
这里我们只检测AO输出的电压模拟量信号,因为该电压信号可以反映酒精浓度大小。对于DO引脚则使用起来更简单,当酒精浓度大于通过电位器阻值设定的触发阙时,DO输出低电平。如果开发者感兴趣的话可以用Core提供的GPIO库函数来实现,这里就不涉及了。
三、接线图
四、材料清单
- MQ-3酒精浓度探测传感器模块
五、完整代码
--配置Core的USB口以虚拟串口模式工作,这样print()输出的内容就可以在电脑串口终端上显示了
LIB_UsbConfig("CDC")
--配置AD电压采集功能,最大值采样值4096对应3.6V输入电压
--当通道采集满1个点时缓存满,每个点的采集时间间隔为300ms
LIB_ADConfig(1,300000)
--开始大循环
while(GC(1) == true)
do
--每隔300ms查询A0通道是否转换完成
--开发者也可以将传感器接至A1-A3中的任一通道,也可以多个通道接多个传感器,用法都和下面一样
LIB_DelayMs(300)
A0_full_flag, A0_buf = LIB_ADCheckBufFull("A0")
if A0_full_flag == 1 then
--打印输出A0通道的AD采样值以及对应的电压值
print(string.format("A0=%04d Voltage=%.2fv", A0_buf[1], A0_buf[1]*3.6/4096.0))
end
end
如果感兴趣,上面代码中出现的LIB开头的库函数可以在 API文档 中通过Ctrl+F查询。
六、实验过程及结论
步骤一:上电后二十秒内,等待传感器加热时传感器的输出值
步骤二:二十秒加热器过后无酒精状态时传感器的输出值
步骤三:在传感器附近喷洒酒精喷雾时传感器的输出值
步骤四:喷洒酒精喷雾30秒后传感器的输出值
步骤五:喷洒酒精喷雾90秒后传感器的输出值
结论:
- 传感器发热是因为里面的电阻丝需要加热,属于正常情况,但如果非常烫手就可能是异常情况了。
- 传感器上电后需要大概20秒的加热时间,之后才能正常测量。
- 酒精浓度越高,传感器输出的电压值越大。
附:其他和MQ-3类似的半导体式气体传感器
其他的半导体式气体传感器和MQ-3传感器原理类似,可参考按照上面文章中的内容来开发,但每种传感器的不同处还需您在官网查阅相关产品说明书。