【雕爷学编程】Arduino动手做(25)——MQ-2甲烷一氧化碳气敏式烟雾传感器模块2

本文主要是介绍【雕爷学编程】Arduino动手做(25)——MQ-2甲烷一氧化碳气敏式烟雾传感器模块2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试做实验,不管成功与否,都会记录下来—小小的进步或是搞不定的问题,希望能够抛砖引玉。

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二十五:MQ-2气敏式烟雾传感器模块(甲烷 液化气可燃气体)酒精氢一氧化碳可燃液化传感器模块探头

在这里插入图片描述
在这里插入图片描述

MQ2气敏传感器模块电原理图

在这里插入图片描述
在这里插入图片描述

第一步:给模块供5V直流电(注意正负极别接反,否则容易烧毁芯片)。

第二步:如果选择DOUT,TTL高低电平端,输出信号可以直接接单片机IO口或者接一个NPN型三极管去驱动继电器,电位器RP在这里用于调节输出电平跳变的阀值,由下图原理图可以分析,当传感器检测到被测气体时,比较器LM393管脚2点的电压值,跟传感器检测到气体的浓度成正比,当浓度值超过电位器RP设定的阀值时,比较器2脚的点位高于3脚的点位,这个时候,比较器1脚输出低电平,LED灯亮,R3为LED灯限流电阻,C1为滤波电容。传感器输出低电平,反之,当没有信号的时候,传感器输出高电平,等于电源电压。

第三步:如果选择AOUT,模拟量输出,那样就不用管电位器了,直接将AOUT脚接AD转换的输入端或者,带有AD功能的单片机,就可以了。根据我们的经验:在正常环境中,即:没有被测气体的环境,设定传感器输出电压值为参考电压,这时,AOUT端的电压在1V左右,当传感器检测到被测气体时,电压每升高0.1V,实际被测气体的浓度增加200ppm(简单的说:1ppm=1mg/kg=1mg/L=1×10-6 常用来表示气体浓度,或者溶液浓度。),根据这个参数就可以在单片机里面将测得的模拟量电压值转换为浓度值。注意:如果您是用来做精密仪器,请购买市场上标准的校准仪器,不然存在误差,因为,输出浓度和电压关系的比值并非线性,而是趋于线性。

特别提醒:传感器通电后,需要预热20S左右,测量的数据才稳定,传感器发热属于正常现象,因为内部有电热丝,如果烫手就不正常了。

模块特色:
1、采用优质双面板设计,具有电源指示和TTL信号输出指示;
2、具有DO开关信号(TTL)输出和AO模拟信号输出;
3、TTL输出有效信号为低电平。(当输出低电平时信号灯亮,可直接接单片机或继电器模块)
4、模拟量输出电压随浓度越高电压越高。
5、对液化气,天然气,城市煤气,烟雾有较好的灵敏度。
6、有四个螺丝孔便于定位;
7、产品外形尺寸:32(L)*20(W)*22(H)
8、具有长期的使用寿命和可靠的稳定性
9、快速的响应恢复特性

在这里插入图片描述
在这里插入图片描述

电气性能:
输入电压:DC5V 功耗(电流):150mA
DO输出:TTL数字量0和1(0.1和5V)
AO输出:0.1-0.3V(相对无污染),最高浓度电压4V左右
特别提醒:传感器通电后,需要预热20S左右,测量的数据才稳定,传感器发热属于正常现象,因为内部有电热丝,如果烫手就不正常了。

在这里插入图片描述


在这里插入图片描述

接线方式:
1、VCC:接电源正极(5V)
2、GND:接电源负极
3、DO:TTL开关信号输出
4、AO:模拟信号输出

在这里插入图片描述

在这里插入图片描述

仿真示意图

在这里插入图片描述

在这里插入图片描述

/*【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)实验二十五:MQ-2气敏式烟雾传感器模块(甲烷 液化气可燃气体)*/#define Aout A0 //MQ-2 AO 接 Arduino Uno A0int temp = 0; //临时变量,存储A0读取的数据void setup() {// put your setup code here, to run once:Serial.begin(9600);//定义波特率pinMode(Aout, INPUT);//定义A0为INPUT模式}void loop() {// put your main code here, to run repeatedly:temp = analogRead(Aout); //读取A0的模拟数据Serial.println(temp); //串口输出temp的数据delay(500);  //延时500毫秒}

实验示意图

在这里插入图片描述

用打火机的丁烷气体做测试

在这里插入图片描述

第一次实验的串口数据

在这里插入图片描述

第二次实验的检测数据

在这里插入图片描述

实验的波形图,检测到丁烷气体挺敏感

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

/*
【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
实验二十五:MQ-2气敏式烟雾传感器模块(甲烷 液化气可燃气体)
项目:声音烟雾报警器
蜂鸣器 buzzer=D4
*/int MQ2=A0;//指定模拟端口A0int val=0;//声明临时变量
int buzzer=4;
void setup()
{pinMode(MQ2,INPUT);Serial.begin(9600);//设置串口波特率为9600pinMode(buzzer,OUTPUT);//设置IO脚模式,OUTPUT为输出
}
void loop()
{val=analogRead(MQ2);//读取A0口的电压值并赋值到valSerial.println(val);//串口发送val值if(val>70)digitalWrite(buzzer,HIGH);//发声音elsedigitalWrite(buzzer,LOW);//关闭声音
}

收集的一些相关资料

1、可燃气体传感器(MQ系列)-救命的传感器

https://www.bilibili.com/video/av804079838/?from=search&seid=11663358107279587563&spm_id_from=333.337.0.0

2、《单片机实践项目》之MQ-3酒精检测传感器讲解(274)

https://www.bilibili.com/video/av287274155?from=search&seid=5350287723948680848&spm_id_from=333.337.0.0

3、
Arduino-MQ-2气体传感器检测演示

https://www.bilibili.com/video/av805299651/?from=search&seid=13856095729728797361&spm_id_from=333.337.0.0

4、(第三章.基础实验)实验19、MQ-2气体传感器

https://www.bilibili.com/video/av886804760/?from=search&seid=13856095729728797361&spm_id_from=333.337.0.0

5、MQ系列气体检测报警器操作演示 烟雾传感器测试 可燃气体传感器报警

https://www.bilibili.com/video/av807019421/?from=search&seid=13856095729728797361&spm_id_from=333.337.0.0

6、mq2可燃气体报警器

https://www.bilibili.com/video/av70300691/?from=search&seid=13856095729728797361&spm_id_from=333.337.0.0

在这里插入图片描述

这篇关于【雕爷学编程】Arduino动手做(25)——MQ-2甲烷一氧化碳气敏式烟雾传感器模块2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/513683

相关文章

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

【编程底层思考】垃圾收集机制,GC算法,垃圾收集器类型概述

Java的垃圾收集(Garbage Collection,GC)机制是Java语言的一大特色,它负责自动管理内存的回收,释放不再使用的对象所占用的内存。以下是对Java垃圾收集机制的详细介绍: 一、垃圾收集机制概述: 对象存活判断:垃圾收集器定期检查堆内存中的对象,判断哪些对象是“垃圾”,即不再被任何引用链直接或间接引用的对象。内存回收:将判断为垃圾的对象占用的内存进行回收,以便重新使用。

Go Playground 在线编程环境

For all examples in this and the next chapter, we will use Go Playground. Go Playground represents a web service that can run programs written in Go. It can be opened in a web browser using the follow

深入理解RxJava:响应式编程的现代方式

在当今的软件开发世界中,异步编程和事件驱动的架构变得越来越重要。RxJava,作为响应式编程(Reactive Programming)的一个流行库,为Java和Android开发者提供了一种强大的方式来处理异步任务和事件流。本文将深入探讨RxJava的核心概念、优势以及如何在实际项目中应用它。 文章目录 💯 什么是RxJava?💯 响应式编程的优势💯 RxJava的核心概念

函数式编程思想

我们经常会用到各种各样的编程思想,例如面向过程、面向对象。不过笔者在该博客简单介绍一下函数式编程思想. 如果对函数式编程思想进行概括,就是f(x) = na(x) , y=uf(x)…至于其他的编程思想,可能是y=a(x)+b(x)+c(x)…,也有可能是y=f(x)=f(x)/a + f(x)/b+f(x)/c… 面向过程的指令式编程 面向过程,简单理解就是y=a(x)+b(x)+c(x)

arduino ide安装详细步骤

​ 大家好,我是程序员小羊! 前言: Arduino IDE 是一个专为编程 Arduino 微控制器设计的集成开发环境,使用起来非常方便。下面将介绍如何在不同平台上安装 Arduino IDE 的详细步骤,包括 Windows、Mac 和 Linux 系统。 一、在 Windows 上安装 Arduino IDE 1. 下载 Arduino IDE 打开 Arduino 官网

Java并发编程之——BlockingQueue(队列)

一、什么是BlockingQueue BlockingQueue即阻塞队列,从阻塞这个词可以看出,在某些情况下对阻塞队列的访问可能会造成阻塞。被阻塞的情况主要有如下两种: 1. 当队列满了的时候进行入队列操作2. 当队列空了的时候进行出队列操作123 因此,当一个线程试图对一个已经满了的队列进行入队列操作时,它将会被阻塞,除非有另一个线程做了出队列操作;同样,当一个线程试图对一个空