MQ-2烟雾传感器

2023-05-16

一、MQ-2烟雾传感器简介

MQ-2常用于家庭和工厂的气体泄漏监测装置,适宜于液化气、苯、烷、酒精、氢气、烟雾等的探测。故因此,MQ-2可以准确来说是一个多种气体探测器。

MQ-2的探测范围极其的广泛。它的优点:灵敏度高、响应快、稳定性好、寿命长、驱动电路简单。

二、MQ-2的工作原理

MQ-2型烟雾传感器属于二氧化锡半导体气敏材料,属于表面离子式N型半导体。处于200~300摄氏度时,二氧化锡吸附空气中的氧,形成氧的负离子吸附,使半导体中的电子密度减少,从而使其电阻值增加。当与烟雾接触时,如果晶粒间界处的势垒收到烟雾的浓度而变化,就会引起表面导电率的变化。利用这一点就可以获得这种烟雾存在的信息,烟雾的浓度越大,导电率越大,输出电阻越低,则输出的模拟信号就越大

三、MQ-2的特性

  • MQ-2型传感器对天然气、液化石油气等烟雾有很高的灵敏度,尤其对烷类烟雾更为敏感,具有良好的抗干扰性,可准确排除有刺激性非可燃性烟雾的干扰信息。

  • MQ-2型传感器具有良好的重复性和长期的稳定性。初始稳定,响应时间短,长时间工作性能好。需要注意的是:在使用之前必须加热一段时间,否则其输出的电阻和电压不准确。

  • 其检测可燃气体与烟雾的范围是100~10000ppm

  • (ppm为体积浓度。1ppm=1立方厘米/1立方米)

  • 电路设计电压范围宽,24V以下均可,加热电压5±0.2V

注意:如果加热电压过高,会导致输入电流过大,将内部的信号线熔断,从而器件报废。

 

四、MQ-2应用电路

MQ-2常用的电路有两种,一种使用采用比较器电路监控,另一种为ADC电路检测。

1. 比较器电路

 

MQ-2的引脚4输出随烟雾浓度变化的直流信号,被加到比较器U1A的2脚,Rp构成比较器的门槛电压。当烟雾浓度较高输出电压高于门槛电压时,比较器输出低电平(0v),此时LED亮报警;当浓度降低传感器的输出电压低于门槛电压时,比较器翻转输出高电平(Vcc),LED熄灭。调节Rp,可以调节比较器的门槛电压,从而调节报警输出的灵敏度。R1串入传感器的加热回路,可以保护加热丝免受冷上电时的冲击。

 

2. ADC转换电路

MQ-2传感器另外一个采集方法为AD信号采集,即将电压信号转化为数字信号,进而转化为精确的烟雾浓度值。

MQ-2传感器的4脚、6脚的电压为输出信号,Rs为传感器的本体电阻。其中若气体浓度上升,必导致Rs下降。而Rs的下降则会导致MQ-2的4脚、6脚对地输出的电压增大。所以气体浓度增大,其输出的电压也会增大,最终通过ADC0832转换后数值增大。

五.控制程序

1. 因为比较器电路处理的检测信号只有高和低两种状态;当浓度低于阈值时,信号为高电平;浓度高于阈值时,信号为低电平。所以单片机只需要将引脚配置为输入模式,监控该信号的高低电平即可。

2. AD信号采集程序

实现对MQ-2烟雾浓度的采集,只需实现ADC0832采集函数便可完成信号的采集。但通过ADC0832采集到的信号只为原始信号,要转换为实际的烟雾浓度,还需要根据MQ-2的特性进行校正和公式转换,最终得到实际的浓度值。

/****************************************************************************
函数功能:AD转换子程序
入口参数:channel
出口参数:dat
****************************************************************************/
unsigned char adc0832(unsigned char channel )
{
  unsigned char i,test,adval,dat;
  adval = 0x00;
  test = 0x00;
  
  Clk = 0;       //初始化
  DATI = 1;
  _nop_();
  CS = 0;
  _nop_();
  Clk = 1;
  _nop_();
  
  
  if (channel == 0x00 )      //通道选择
  {
    Clk = 0;
    DATI = 1;      //通道0的第一位
    _nop_();
    Clk = 1;
    _nop_();
    Clk = 0;
    DATI = 0;      //通道0的第二位
    _nop_();
    Clk = 1;
    _nop_();
  } 
  else
  {
    Clk = 0;
    DATI = 1;      //通道1的第一位
    _nop_();
    Clk = 1;
    _nop_();
    Clk = 0;
    DATI = 1;      //通道1的第二位
    _nop_();
    Clk = 1;
    _nop_();
  }
  
  Clk = 0;
  DATI = 1;
  for( i = 0;i < 8;i++ )      //读取前8位的值
  {
    _nop_();
    adval <<= 1;
    Clk = 1;
    _nop_();
    Clk = 0;
    if (DATO)
    adval |= 0x01;
    else
    adval |= 0x00;
  }
  for (i = 0; i < 8; i++)      //读取后8位的值
  {
    test >>= 1;
    if (DATO)
    test |= 0x80;
    else 
    test |= 0x00;
    _nop_();
    Clk = 1;
    _nop_();
    Clk = 0;
  }
  if (adval == test)      //比较前8位与后8位的值,如果不相同舍去。若一直出现显示为零,请将该行去掉
  dat = test;
  nop_();
  CS = 1;        //释放ADC0832
  DATO = 1;
  Clk = 1;
  return dat;
}

/****************************************************************************
函数功能:获取烟雾浓度
入口参数:无
出口参数:dat
****************************************************************************/
unsigned char GetYanWuValue(void)
{
    unsigned int sum=0;
    unsigned char m,value=0;
    for(m=0;m<20;m++)      //读50次AD值
      sum = adc0832(0)+sum;    //读到的AD值,将读到的数据累加到sum
    value=(unsigned char)(sum/20);        //跳出上面的for循环后,将累加的总数除以50得到平均值value
  
    if(value > ADC_Zero) 
        value = value - ADC_Zero;              //首先减去零点漂移
      else
        value = 0;
  
    return value;

}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MQ-2烟雾传感器 的相关文章

随机推荐

  • ROS18.04:安装gazebo,下载模型

    一 安装gazebo Ubuntu18 04安装Gazebo并与ROS连接 Jize 的博客 CSDN博客 ubuntu18安装gazebo 其中报错 xff1a 解决 xff1a sudo apt upgrade 二 下载模型 方法一 x
  • Github使用指南(持续更新中)

    一 简介 Github的网页端是www github com GitHub是一个面向开源及私有软件项目的托管平台 xff0c 因为只支持Git作为唯一的版本库格式进行托管 xff0c 故名GitHub GitHub于2008年4月10日正式
  • Linux安装离线版docker

    Linux安装离线版docker 1 docker 离线包下载地址 https download docker com linux static stable x86 64 2 创建 docker service xff0c 代码中 ins
  • Android Studio 超详细 安装SDK 教程

    一 首先安装Android SDK Tools 国内下载地址Android SDK Tools 百度云下载地址链接 xff1a https pan baidu com s 1RmXi8b lxksVS5hJuSLPIg 提取码 xff1a
  • 【Android Studio】win10安装教程 史上最详细

    一 安装Android Studio 1 首先下载Android Studio 官网下载 xff1a Androis Studio 官网 2 双击打开 点击Next 3 选择安装 xff0c 点击Next 4 选择安装路径 xff0c 点击
  • Android Studio 创建手机虚拟机教程

    小白 Android Studio创建手机虚拟机 版本 AndroidStudio 3 5 3 在APP开发中不一定每时每刻都有真机 xff0c 所以可以通过AndroidStudio 创建一个手机虚拟机 1 创建新的手机虚拟机 点击No
  • Android Studio 下载设备虚拟机镜像

    这里以下载手机虚拟机镜像为示例 需要用到的软件 Android SDK Tools 不知道如何安装Android SDK Tools 的请参考 安装Android SDK Tools SDK Manager exe打不开的请参考这里 SDK
  • 【嵌入式】交叉编译 移植 i2cTool4.1 史上最详细

    一 i2ctool 介绍 i2c tools工具是一个专门用来调试 i2c 的 并且是开源的 他可以 xff1a 1 检测有几组i2c总线在系统上 2 查看挂载在i2c上面设备寄存器的数值 3 可以读取挂载在i2c上面设备寄存器的数值 4
  • 【Ubuntu】 vim 安装与美化 史上最详细

    一 安装vim sudo apt get install vim 二 配置vim 针对单个用户配置 vim vimrc 针对全部用户配置 vim etc vim vimrc 三 配置选项 1 我的配置 34 设置编码 set fileenc
  • 【Ubuntu】Ubuntu16.04安装 搜狗输入法 史上最详细

    一 基本配置 开发环境 xff1a ubuntu16 04 二 准备工作 下载 搜狗输入法linux版 搜狗输入法官网Linux版 我这里是64位的 xff0c 所以选择64位 1 拷贝搜狗输入法到ubuntu cp media sf sh
  • 【嵌入式】---交叉编译 移植 ALSA1.2.2

    一 开发环境 开发环境 xff1a ubuntu16 04 开发平台 xff1a imx6q 交叉编译工具链 xff1a arm linux gnueabihf 二 需要的软件 1 alsa lib 下载地址 xff1a alsa lib
  • 【Android Studio 】经典常用开发设置 [最新最详细-持续更新]

    概述 一个好的配置能够帮助开发者完成更便捷 更快速的开发书山有路勤为径 xff0c 学海无涯苦作舟 我是秋知叶i 期望每一个阅读了我的文章的开发者都能够有所成长 一 当前 Android Studio 版本 Android Studio 经
  • 【MobaXterm】登录SSH服务器

    登录SSH远程服务器 一 配置用户信息1 打开Session2 打开SSH3 新建用户4 创建用户 二 配置登录SSH服务器信息三 再次登录服务器 一 配置用户信息 1 打开Session 2 打开SSH 3 新建用户 4 创建用户 输入账
  • 【adb】 win11 配置 adb环境 史上最详细

    官网下载 adb官网下载 下载下来的压缩包platform tools r33 0 3 windows zip 我们解压得到一个platform tools 二 配置adb环境 新建系统变量 点击浏览目录选择解压的文件夹 xff0c 然后点
  • 【Dev-c++】美化配置

    概述 一个好的配置能够帮助开发者完成更便捷 更快速的开发书山有路勤为径 xff0c 学海无涯苦作舟 我是秋知叶i 期望每一个阅读了我的文章的开发者都能够有所成长 一 设置语法格式 点击工具 编辑器选项 选择 语法 点击预设这里选择 Plas
  • 嵌入式Linux调试器GDB的使用

    调试一直是程序开发的重中之重 xff0c 使用GDB调试可以帮助我们快速找到程序中的错误 注意 xff1a 在进行GDB调试之前 xff0c 程序在gcc编译时要加上 g 选项 1 进入GDB xff1a gdb 可执行文件名 2 查看GD
  • 华清数据结构项目实训——学生信息管理系统

    模块划分及主要文件 1 主程序模块 主要功能 xff1a 程序的入口 主要文件 xff1a main c 2 菜单模块 主要功能 xff1a 完成菜单的显示以及登录和调用相应功能函数 主要文件 xff1a menu h menu c 3 学
  • sqlite3的安装以及增删改查排序功能的实现

    目录 一 安装sqlite3 1 安装sqlite3数据库 xff1a 2 安装编译依赖库 3 安装可视化界面 4 验证数据库是否安装成功 二 常用数据库指令及SQL数据类型 1 常用数据库指令 2 常用SQL数据类型 三 数据库操作 1
  • C++函数模板

    前言 模板是一个通用框架 xff0c 是C 43 43 泛型编程 思想的主要体现 C 43 43 提供了函数模板 和类模板 两种模板机制 xff0c 本文介绍的是函数模板相关的知识 一 函数模板的作用及语法 作用 xff1a 用一个虚拟的类
  • MQ-2烟雾传感器

    一 MQ 2烟雾传感器简介 MQ 2常用于家庭和工厂的气体泄漏监测装置 xff0c 适宜于液化气 苯 烷 酒精 氢气 烟雾等的探测 故因此 xff0c MQ 2可以准确来说是一个多种气体探测器 MQ 2的探测范围极其的广泛 它的优点 xff