第五部分 外设篇 - 基础实验 第3章 A - CC2530 MQ-2气体传感器

1理论分析

MQ- 2 气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。当传感器所处环境中存在可燃气体时,传感器的电导率随空气中可燃气体浓度的增加而增大。使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。MQ-2 气体传感器对液化气、丙烷、氢气的灵敏度高,对天然气和其它可燃蒸汽的检测也很理想。这种传感器可检测多种可燃性气体,是一款适合多种应用的低成本传感器。

2实验详解

2.1实验目的

1)、通过实验掌握CC2530 芯片GPIO 的配置方法
2)、掌握MQ-2 气体传感器的使用

2.2实验设备

硬件:PC 机一台; ZB2530(底板、核心板、仿真器、USB 线) 一套;MQ-2 气体传感一套
软件:2000/XP/win7 系统,IAR 8.20 集成开发环境。

2.3实验相关电路图

这里写图片描述

图1

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

2.4实验相关寄存器

实验中使用P0_5 做为检测引脚,当浓度高于设定值时,P0_5 为低电平,平时正常状态时为高电平。DO 输出电平和厂家有关,请参考具体模块的参数。相关寄存器如下:。

表1 端口0的功能选择

这里写图片描述

表2 端口0的方向

这里写图片描述

配置P0_5的方法:
P0DIR &= ~0x20; //配置与MQ-2 连接的P0.5 为输入口
#define DATA_PIN P0_5 //定义P0.5 口为传感器的输入端

2.5参考代码(部分代码)

/**Includes*********************************************************************/
#include <ioCC2530.h>

/**宏定义***********************************************************************/
//定义数据类型
typedef unsigned char uchar;
typedef unsigned int  uint;

//定义端口
#define LED1     P1_0            //定义P1.0口为LED1控制端
#define DATA_PIN P0_5            //定义P0.5口为传感器的输入端

/**函数声明*********************************************************************/
void DelayMS(uint msec);
void InitGpio(void);

/**
  * @brief     主函数
  * @param     None
  * @retval    None
  */
void main(void)
{    
  uint i=0;

  InitGpio();                    //设置LED灯和MQ2相应的IO口

  while(1)                      //无限循环
  {
    LED1 = 1;                 //熄灭P1.0口灯       
    if(DATA_PIN == 0)         //当浓度高于设定值时 ,执行条件函数            
    {      
      DelayMS(10);          //延时抗干扰
      if(DATA_PIN == 0)     //确定 浓度高于设定值时 ,执行条件函数
      {
        for (i=0; i<10; i++)
        {
          LED1 = ~LED1; //闪烁LED1,提示用户
          DelayMS(100);
        }
      }
    }  
  }    
}

/**
  * @brief     以毫秒为单位延时 16M时约为535,系统时钟不修改默认为16M
  * @param     msec 延时参数,值越大,延时越久
  * @retval    None
  */
void DelayMS(uint msec)
{ 
    uint i,j;

    for (i=0; i<msec; i++)
        for (j=0; j<535; j++);
}

/**
  * @brief     设置LED灯和MQ2相应的IO
  * @param     None
  * @retval    None
  */
void InitGpio(void)
{
    P1DIR |= 0x01;               //P1.0定义为输出口
    P0DIR &= ~0x20;              //P0.6定义为输入口
}

2.6实验现象

用打火机挥发出来气体靠近MQ2,板子P05检测到有害气体。然后D1 开始一闪一闪。

本章参考代码

点击进入

猜你喜欢

转载自blog.csdn.net/u013162035/article/details/81038422