当前位置:网站首页>【MQ-3 酒精检测器与 Arduino检测酒精】
【MQ-3 酒精检测器与 Arduino检测酒精】
2022-08-02 03:29:00 【WENJIE科技】
MQ-3 酒精检测器与 Arduino检测酒精
前言
现在,传感器通过检测烟雾、火灾或气体并提醒适当的人,在各种公寓、房屋和企业的安全和安保中发挥着至关重要的作用。今天的帖子将讨论一种这样的传感器,MQ-3。MQ-3 是酒精敏感传感器,通常用于呼吸分析仪。
MQ-3 酒精传感器引脚
MQ-3 气体检测传感器模块包括四个可用于从传感器提取数据的引脚:VCC、GND、Aout 和 Dout。MQ-3酒精检测传感器的引脚排列如下:
VCC==》是气体检测传感器的电源引脚,可连接到 5V 电源。
GND==》是电路板的接地引脚,应该连接到 Arduino 的接地引脚。
DO==》是板子的数字输出引脚;低输出表示环境中不存在酒精,而高输出表示存在酒精。
AO==》是电路板的模拟输出引脚,它将根据检测到的酒精浓度为我们提供在 Vcc 和接地之间变化的模拟信号:
MQ-3 酒精传感器模块组成
MQ-3 传感器在新手中很受欢迎,因为它在大多数Arduino 项目中用于检测酒精。这些也是低成本、易于使用的传感器,具有广泛的检测范围,可以缩小以改变灵敏度。MQ-3 传感器的组件标记如下所示。
MQ-3 酒精传感器模块具有四个引脚,其中两个用于 VCC 和 GND。另外两个可以同时输出模拟和数字数据,就像其他基本传感器模块一样。我们使用 Arduino 的 5V 引脚为电路供电,因为模块的工作电压范围为 5V,容差为 0.1%。该模块具有两个内置 LED,如上图所示。当电源连接到电路板时,电源 LED 会亮起,当达到电位器的触发值时,Dout LED 会亮起。该板还具有一个运算放大器比较器,可将来自气体传感器的输入模拟信号转换为数字信号。
MQ-3 酒精传感器模块如何工作?
MQ-3 气体传感器需要一个加热元件来正确识别酒精。但是,在酒精附近放置加热元件可能很危险。因此,传感器构建有一个由两层薄薄的不锈钢网组成的防爆网络,如下图所示。这种不锈钢网包含一个加热元件。
这种网状结构还可以防止灰尘和其他悬浮颗粒,只允许环境中的气态成分通过。当我们拆卸传感器时,我们可以看到它包含两个主要组件。第一个是加热元件,由镍铬丝制成,第二个是检测元件,由铂丝组成,上面涂有二氧化锡。下图显示了从实际传感器上取下的网格。
从传感器中移除网格后,它看起来像这样。如上图所示,我们切割不锈钢网并将其放置在传感器的一侧。我们之前讨论的传感方面现在也是可见的。传感器的星形引脚是通过构建连接到传感器的六个支脚的实际检测和加热元件而产生的。还可以看到由电木制成以促进导热的传感器的黑色底座。
MQ-3 传感器的预热时间:
使用这种酒精传感器需要一个预热或稳定期才能使设备正常工作。如果您查看设备的数据表,您会注意到它需要 48 小时的预热期。这是说必须开机48小时才能使用吗?
对于这个问题,明确的答案是响亮的“否”。您必须连续运行 48 小时才能获得数据表中规定的标准性能数字。48 小时后在他们的实验室进行了测试。所以,如果要保持在参数范围内,就必须坚持48小时的预热时间。鉴于传感器的尺寸适中,热平衡无疑将在 30 分钟内达到。并且获得数据表提供的数字的百分之几可能需要几分钟。
仅当您想要精确测量酒精浓度时,48 小时的预热期才必不可少。您还需要强大的传感器校准和某种方法来校正其他环境条件,如温度、湿度等。
MQ-3 传感器可用于检测和测量 PPM 中的酒精含量。必须记住,检测蒸汽和测量其在 PPM 中的浓度是两件非常不同的事情。这篇文章的主要焦点是观察酒精含量和浓度的增加。如果您想精确计算 PPM 中的酒精含量,该技术略有不同;不过,我们将简要介绍一下。
如何使用 MQ-3 传感器检测酒精?
我们在上面的 gif 中有一个装有 IPA 的容器,当它被喷洒时,周围的气体浓度会增加。当我们第二次和第三次倒入时,酒精浓度再次增加。传感器的输出电压随着酒精浓度的升高而增加,这可以在万用表上看到。当模块超过特定阈值(可以使用电位计控制)时,模块上的绿色 LED 会亮起。这可以在我们为演示目的而包含的模块的背面照片中看到。
如何使用 MQ-3 传感器测量 PPM 中的酒精浓度?
这是一个高度精确的传感器,经过校准以检测环境中存在的酒精 PPM;但是,要做到这一点,您必须首先了解 MQ-3 传感器的灵敏度特性,可以在MQ3 传感器数据表中找到,如下图所示。在对数图中,RS 是酒精存在期间的感应电阻。而 R0 是对清洁空气的感应电阻。该传感器设计用于检测酒精,对苯的敏感性较低,因此该传感器的电阻会根据大气中酒精的浓度而变化。
关于 MQ-3 酒精传感器模块的常见问题
Q-1:MQ3 传感器检测什么?
市场上有许多气体检测传感器。这是一种可以检测酒精的低成本半导体传感器。MQ-3 适用于检测酒精、汽油、CH4、己烷、LPG、CO。
Q-2:MQ-3 传感器的工作电压是多少?
MQ3 酒精传感器在 5V DC 下工作,功耗约为 800mW。它可以检测到的酒精浓度范围为百万分之 25 至 500 份 (ppm)。
Q-3:MQ-3 传感器的感应范围是多少?
它可以检测0.05毫克/升到10毫克/升的酒精气体浓度,也可以检测百万分之25到500份(ppm)的酒精浓度。
Q-4:什么是 MQ 系列传感器?
MQ 气体传感器是一种可以检测多种气体的传感器,包括酒精、烟雾、甲烷、液化石油气、氢气、NH3、苯和丙烷等。这些传感器由一个电极组成,该电极覆盖有一种感应材料,该材料被加热以增加其反应性和灵敏度。
MQ-3 传感器模块的内部电路图
MQ-3 酒精检测传感器模块电路图如下所示。这个模块的设计比较基础,只需要几个组件就可以构建。如果您急于创建此电路,下面显示的示意图将很有帮助。我们在原理图中有一个 LM393 运算放大器,它是一个 +5V 电源可以驱动的低功耗、低失调电压运算放大器。但是,由于 MQ-3 传感器的最低工作电压为 5V,因此使用 3.3V 为电路供电是不可能的。此运算初级放大器的功能将输入的模拟信号转换为数字信号。除此之外,我们还有一个集成的 10K 电位器,用于调节 MQ-3 酒精传感器模块触发电压的灵敏度。除此之外,还有两个 LED。电源 LED 是第一个,而触发 LED 是第二个。为电路板供电时,电源 LED 亮起。当达到特定的指定阈值时,触发 LED 亮起。最后,板上有两个去耦电容,有助于降低噪声。
Arduino Uno MQ-3 酒精传感器 - 连接图
现在我们知道了 MQ-3 酒精传感器的工作原理,我们可以将所有必要的电线连接到 Arduino Uno 并看看它是如何工作的。我们将从模拟组件开始,然后进入数字部分,这非常简单。
要使用传感器,我们必须首先为其供电。我们使用 Arduino UNO Board 的 5V 和 GND 引脚,传感器的输出引脚连接到 Arduino 的 A0 引脚。我们已经将一个 LED 连接到 Arduino 的 PIN 6,模拟引脚连接到 Arduino 的 A0 引脚,接地引脚在 LED 和传感器之间共享,如上图所示。我们将配置 Arduino,使 LED 的亮度随着环境中的酒精浓度而变化
要读取传感器的数字组件,只需将传感器的输出连接到 Arduino 上的任何数字引脚并检查引脚是否有高脉冲;如果 Arduino 读取到高脉冲,则检测到酒精;如果 Arduino 读取低脉冲,则环境中不存在酒精。
用于连接 MQ-3 气体传感器模块的 Arduino 代码
Arduino MQ-3 酒精传感器模块的代码很简单。我们只是从传感器读取模拟数据并调整 LED 的亮度以匹配数据。请记住,我们只是在处理来自传感器的模拟数据;对于数字数据,模块的内置 LED 将亮起。
我们定义了四个宏:前两个是我们认为清醒和醉酒的值。第三个用于传感器引脚,第四个用于 LED,当它亮起时,表示存在酒精。
#define Sober 150
#define Drunk 400
#define MQ3 0
#define ledPin 6
如您所知,传感器需要加热一点才能提供准确的读数。这部分代码暂停所有内容并将传感器模块加热 20 秒。
Serial.println("MQ3 Heating up!");
delay(20000);
加热完成后,我们开始读取来自传感器模拟引脚的模拟数据,并在串行监视器上打印数据。正如我们之前定义的清醒和醉酒的值,我们将这些值与实时传感器值进行比较,以显示一个人是否醉酒。
sensorValue = analogRead(MQ3); // read analog input pin 0
Serial.print("Sensor Value: ");
Serial.print(sensorValue);
if (sensorValue < Sober) {
Serial.println(" | Status: Sober");
} else if (sensorValue >= Sober && sensorValue < Drunk) {
Serial.println(" | Status: Drinking but within legal limits");
} else {
Serial.println(" | Status: DRUNK");
有一个 LED 连接到引脚 6,我们正在生成一个与传感器值相对应的 PWM 信号以打开 LED。当传感器值大于 150 时,LED 将开始发光,由于我们通过 PWM 信号为 LED 供电,它会随着传感器值的增加而增加其亮度。
unsigned int outputValue = map(sensorValue, 0, 1023, 0, 255);
if (sensorValue > 150){
analogWrite(ledPin, outputValue);
}
else{
digitalWrite(ledPin, LOW);
}
MQ-3 传感器模块的工作
当环境中没有酒精时,LED 熄灭,但是当我们提供少量 IPA 时,LED 会打开,因为我们已经编写了这样做的代码。环境中存在的酒精越多,LED 会越亮;当空气中的酒精浓度为 500 ppm 时,LED 会发光。
完整代码
#define Sober 200 // Define max value that we consider sober
#define Drunk 400 // Define min value that we consider drunk
#define MQ3 0
#define ledPin 6
float sensorValue; //variable to store sensor value
void setup() {
Serial.begin(9600); // sets the serial port to 9600
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
Serial.println("MQ3 Heating Up!");
delay(20000); // allow the MQ3 to warm up
}
void loop() {
sensorValue = analogRead(MQ3); // read analog input pin 0
Serial.print("Sensor Value: ");
Serial.print(sensorValue);
// Return analog moisture value
// Determine the status
if (sensorValue < Sober) {
Serial.println(" | Status: Sober");
} else if (sensorValue >= Sober && sensorValue < Drunk) {
Serial.println(" | Status: Drinking but within legal limits");
} else {
Serial.println(" | Status: DRUNK");
}
unsigned int outputValue = map(sensorValue, 0, 1023, 0, 255);
if (sensorValue > 700){
analogWrite(ledPin, outputValue); // generate PWM signal
}
else{
digitalWrite(ledPin, LOW);
}
return outputValue;
delay(2000); // wait 2s for next reading
}
边栏推荐
猜你喜欢
laravel 写api接口时 session获取不到处理办法
whistle 手机调试代理工具
SyntaxError: unexpected character after line continuation character
树莓派4b安装win11/10过程全教程(附蓝屏inaccessible boot device解决办法)
Debian 12 Bookworm 尝鲜记
深度学习实战(1):花的分类任务
分布式消息队列平滑迁移技术实战
连接本地MySql时出现2003-Can‘t connect to MySql server on ‘localhost‘(10061)
阿里技术官手码12W字面试小册
uniapp发布到微信小程序:分包、删减代码全过程
随机推荐
whistle 手机调试代理工具
Scala 中的集合(二):集合性能比较
属性动画的使用和原理解析
Jetpack中各个组件简介
十大实用的办公工具网站,可以解决你日常100%的问题
centos8 安装搭建php环境
深度学习理论:测试集与验证集的区别及各自用途
Out of memory error on GPU 0. Cannot allocate xxxGB memory on GPU 0, available memory is only xxx
加密数字货币前传:从大卫·乔姆到中本聪
svg图片实战:自定义view打造中国地图
TimeSformer视频理解框架:视频理解中的Transformer
Temporal action localization in untrimmed videos via Multi-stage CNNs SCNN论文阅读笔记
Spark特征工程-one-hot 和 multi-hot
BSN:Boundary-Sensitive Network for Temporal Action Proposal Generation论文阅读笔记
Vision Transformer(ViT)论文精读和Pytorch实现代码解析
SGDP(2)——声纳寻宝游戏
Microsoft Office安装全过程记录
Win10 解决AMD平台下SVM无法开启的问题
无向图的连通分支数(并查集)
Laravel 的关联模型 及其 预加载多个关联 with使用方法