详解MQ3酒精传感器的工作原理以及与Arduino的连接方式[复制链接]

详解MQ3酒精传感器的工作原理以及与Arduino的连接方式[复制链接]

通过使用MQ3酒精传感器模块,可以让您接下来Arduino项目感测酒精。该传感器检测空气中酒精的存在及其浓度。 如果您自制一台呼气式酒精测试仪来确定某人呼吸中的酒精含量,MQ3酒精传感器模块是一个绝佳的选择。

MQ3酒精传感器

MQ3传感器是MQ传感器系列中使用最广泛的传感器之一。它是一种MOS(金属氧化物半导体)传感器。 金属氧化物传感器也称为化学电阻器,因为传感是基于传感材料暴露于酒精时的电阻变化。

MQ3酒精传感器工作在5V下,功耗约为800mW。 它可以检测范围为25至500ppm的酒精浓度。

MQ3酒精传感器内部结构

MQ3是一种加热器驱动的传感器。 因此,它覆盖着两层被称为“防爆网”的精细不锈钢网。 它确保传感器内部的加热元件不会因为我们感应的是易燃气体(酒精)而引起爆炸。

MQ3-Alcohol-Sensor-Parts-Hardware-Overview.jpg (8.99 KB, 下载次数: 625)

下载附件

保存到相册

2023-2-24 09:56 上传

它还可以保护传感器并过滤掉悬浮颗粒,只允许气态元素通过腔室。

MQ3-Alcohol-Sensor-Internal-Structure.jpg (10.28 KB, 下载次数: 617)

下载附件

保存到相册

2023-2-24 09:57 上传

移除外网后,传感器看起来像这样。传感元件和六个延伸到胶木底座之外的连接腿形成星形结构。六个引线中的两个 (H) 负责加热传感元件,并通过镍铬线圈(一种众所周知的导电合金)连接在一起。

其余四根信号导线(A 和 B)用铂丝连接。 这些电线连接到传感元件的主体,并传递流过传感元件的电流的微小变化。

MQ3-Sensing-Element-Aluminium-Oxide-Ceramic-with-Tin-Dioxide-Coating.jpg (8.09 KB, 下载次数: 589)

下载附件

保存到相册

2023-2-24 09:57 上传

管状传感元件由氧化铝 (AL2O3) 基陶瓷和二氧化锡涂层 (SnO2) 制成。 二氧化锡是最重要的材料,因为它对酒精敏感。 另一方面,陶瓷基板提高了加热效率,确保传感器区域持续加热到工作温度。

MQ3-Alcohol-Sensor-Internal-Sensing-Element-Structure.png (11.09 KB, 下载次数: 609)

下载附件

保存到相册

2023-2-24 09:58 上传

总而言之,加热系统由镍铬线圈和氧化铝基陶瓷组成,而传感系统由铂丝和二氧化锡涂层组成。

MQ3酒精传感器如何工作?

当二氧化锡层被加热到高温时,氧被吸附在表面上。 当空气干净时,二氧化锡导带中的电子会被氧分子吸引。这会在SnO2颗粒表面下方形成电子耗尽层,形成势垒。 结果,SnO2膜变得高电阻并阻止电流流动。

然而,在酒精存在的情况下,吸附氧的表面密度会随着酒精与酒精反应而降低,从而降低势垒。 这样,电子被释放到二氧化锡中,允许电流自由流过传感器。

MQ3-Alcohol-Sensor-Working.gif (515.51 KB, 下载次数: 571)

下载附件

保存到相册

2023-2-24 09:59 上传

MQ3酒精传感器模块硬件概述

MQ3酒精传感器使用简单,具有两种不同的输出。 它不仅提供了酒精存在的二进制指示,而且还提供了其在空气中浓度的模拟表示。

MQ3-Alcohol-Sensor-Module.jpg (16.86 KB, 下载次数: 586)

下载附件

保存到相册

2023-2-24 09:59 上传

传感器的模拟输出电压与酒精浓度成比例变化。 空气中酒精浓度越高,输出电压越高; 浓度越低,输出电压越低。 下面的动画显示了酒精浓度和输出电压之间的关系。

MQ3-Alcohol-Sensor-Module-Working-Animation.gif (589.88 KB, 下载次数: 540)

下载附件

保存到相册

2023-2-24 10:00 上传

该模拟信号由LM393高精度比较器数字化,并在数字输出 (D0) 引脚提供。

MQ3-Sensor-LM393-Comparator-with-Sensitivity-Adjustment-pot.jpg (16.67 KB, 下载次数: 606)

下载附件

保存到相册

2023-2-24 10:00 上传

该模块包括一个电位计,用于调节数字输出 (D0) 的灵敏度。 您可以使用它来设置一个阈值,以便当酒精浓度超过阈值时,模块输出低电平,否则输出高电平。

此外,该模块还有两个LED灯。 当模块开启时电源LED亮起,当酒精浓度超过阈值时状态LED亮起。

MQ3酒精传感器模块的引脚排列

现在让我们看一下引脚排列。

MQ3-Alcohol-Sensor-Pinout.png (13.21 KB, 下载次数: 604)

下载附件

保存到相册

2023-2-24 10:01 上传

VCC 为模块供电。 将它连接到Arduino的5V输出。

GND 是接地引脚。

D0 表示存在酒精。 当酒精浓度超过阈值时,D0变为低电平,否则变为高电平。

A0 产生与酒精浓度成正比的模拟输出电压,因此浓度越高,电压越高,浓度越低,电压越低。

校准MQ3酒精传感器

由于MQ3是一个加热器驱动的传感器,如果长时间存放,传感器的校准可能会漂移。

长时间存放(一个月或更长时间)后首次使用时,传感器必须充分预热24-48小时以确保最大精度。

如果最近使用过传感器,则只需5-10分钟即可完全预热。 在预热期间,传感器读数通常很高,然后逐渐降低直到稳定。

实验1 – 使用模拟输出 (A0) 测量酒精浓度

在第一个实验中,我们将读取模拟输出以测量酒精浓度。

硬件接线

让我们将MQ3酒精传感器连接到Arduino。

首先将VCC引脚连接到Arduino的5V引脚,将GND引脚连接到Arduino的接地引脚。最后,将模块的A0输出引脚连接到Arduino上的模拟引脚#0。

下图显示了接线。

Arduino-Wiring-MQ3-Alcohol-Sensor-To-Read-Analog-Output.png (23.31 KB, 下载次数: 579)

下载附件

保存到相册

2023-2-24 10:03 上传

寻找阈值

要估计酒精中毒程度,您需要记录在饮酒前后吹气时传感器输出的值。

只需运行下面的草图并获取读数。

#define MQ3pin 0

float sensorValue; //variable to store sensor value

void setup() {

Serial.begin(9600); // sets the serial port to 9600

Serial.println("MQ3 warming up!");

delay(20000); // allow the MQ3 to warm up

}

void loop() {

sensorValue = analogRead(MQ3pin); // read analog input pin 0

Serial.print("Sensor Value: ");

Serial.println(sensorValue);

delay(2000); // wait 2s for next reading

}复制代码

运行草图代码后,您应该会看到类似于以下内容的读数:

● 在没有酒精的情况下(大约 120)

● 在有酒精的情况下(约 500)

Calibrating-MQ3-Alcohol-Sensor.png (70.33 KB, 下载次数: 517)

下载附件

保存到相册

2023-2-24 10:04 上传

此测试可能需要反复试验。 获得读数后,您可以将它们用作触发动作的阈值。

Arduino代码

下面的草图使用以下阈值估计酒精中毒的程度:

● < 120 是清醒的

● 120-400 正在饮酒

● > 400 喝醉了

/* Replace these values with your own readings */

#define Sober 120 // Define max value that we consider sober

#define Drunk 400 // Define min value that we consider drunk

#define MQ3pin 0

float sensorValue; //variable to store sensor value

void setup() {

Serial.begin(9600); // sets the serial port to 9600

Serial.println("MQ3 warming up!");

delay(20000); // allow the MQ3 to warm up

}

void loop() {

sensorValue = analogRead(MQ3pin); // read analog input pin 0

Serial.print("Sensor Value: ");

Serial.print(sensorValue);

// Determine the status

if (sensorValue < Sober) {

Serial.println(" | Status: Stone Cold Sober");

} else if (sensorValue >= Sober && sensorValue < Drunk) {

Serial.println(" | Status: Drinking but within legal limits");

} else {

Serial.println(" | Status: DRUNK");

}

delay(2000); // wait 2s for next reading

}复制代码

如果一切正常,您应该会在串口监视器上看到类似的内容。

Simple-breathalyzer-using-analog-output.png (14.33 KB, 下载次数: 615)

下载附件

保存到相册

2023-2-24 10:06 上传

实验2 – 使用数字输出 (D0) 检测是否存在酒精

在第二个实验中,我们将使用数字输出来检测酒精的存在。

硬件接线

我们将重复使用之前实验的电路。只需断开与ADC引脚的连接,并将模块上的D0引脚连接到Arduino的数字引脚#8。

下图显示了接线。

Arduino-Wiring-MQ3-Alcohol-Sensor-To-Read-Digital-Output.png (23.19 KB, 下载次数: 566)

下载附件

保存到相册

2023-2-24 10:06 上传

设置阈值

该模块有一个内置电位器,用于设置酒精浓度阈值,高于该阈值模块输出低电平,状态 LED 亮起。

Digital-Output-of-MQ3-Alcohol-Sensor.png (2.75 KB, 下载次数: 656)

下载附件

保存到相册

2023-2-24 10:07 上传

现在,要设置阈值,让酒精蒸汽进入传感器并顺时针转动电位器,直到状态LED亮起。 然后,逆时针转动电位器直到LED熄灭。

Arduino代码

现在,将下面的草图上传到您的 Arduino。

#define MQ3pin 8

int sensorValue; //variable to store sensor value

void setup() {

Serial.begin(9600); // sets the serial port to 9600

Serial.println("MQ3 warming up!");

delay(20000); // allow the MQ3 to warm up

}

void loop() {

sensorValue = digitalRead(MQ3pin); // read digital output pin

Serial.print("Digital Output: ");

Serial.print(sensorValue);

// Determine the status

if (sensorValue) {

Serial.println(" | Alcohol: -");

} else {

Serial.println(" | Alcohol: Detected!");

}

delay(2000); // wait 2s for next reading

}复制代码

您可以在串口监视器上看到类似的输出。

Alcohol-detection-using-digital-output.png (13.08 KB, 下载次数: 622)

下载附件

保存到相册

2023-2-24 10:08 上传

相关推荐

男人下面湿是什么原因造成的
365平台app下载手机版

男人下面湿是什么原因造成的

📅 07-20 👁️ 7465
近期值得一试的 6 个 VR 应用 / 游戏
365平台app下载手机版

近期值得一试的 6 个 VR 应用 / 游戏

📅 07-05 👁️ 1531
道路监控一般保存多长时间
365平台app下载手机版

道路监控一般保存多长时间

📅 08-02 👁️ 3438
【Java】String 类详解:字符串操作的必备知识
365平台app下载手机版

【Java】String 类详解:字符串操作的必备知识

📅 08-27 👁️ 4789
趣踢球小学生世界杯完美落幕 打造青少年足球新标杆
365平台app下载手机版

趣踢球小学生世界杯完美落幕 打造青少年足球新标杆

📅 06-30 👁️ 3796
骑行水壶品牌排行榜
365bet开户网址

骑行水壶品牌排行榜

📅 07-30 👁️ 9218
诚品会员系统升级丨消费自动积分,停车自助缴费
365bet开户网址

诚品会员系统升级丨消费自动积分,停车自助缴费

📅 09-24 👁️ 1705
征途手游回档时间怎么算
365bet在线体育投注网

征途手游回档时间怎么算

📅 09-12 👁️ 9676
【华为麦芒5价格优惠】多少钱/市场价/行情
365bet在线体育投注网

【华为麦芒5价格优惠】多少钱/市场价/行情

📅 08-23 👁️ 5961