STM32的MQ-2的程序

MQ-2烟雾传感模块

MQ系列传感器是使用非常广泛的低成本传感器,广泛应用于家庭或工厂的气体泄漏监测装置。

MQ系列传感器使用的敏感材料是活性很高的金属氧化物半导体,传感器加热后,在不同气体浓度中电导率不同。使用简单的电路就可以将电导率的变化转换成与该气体浓度相对应的信号输出了。
在这里插入图片描述

MQ-2传感器对可燃气、烟雾等气体灵敏度高,基于MQ-2的烟雾传感器模块通过电路设计,提供了两种输出方式:
1.数字量输出:通过板载电位器设定浓度阈值,当检测到环境气体浓度超过阈值时,通过数字引脚DO输出低电平。
2.模拟量输出:浓度越高,AO引脚输出的电压值越高,通过ADC采集的模拟值越高。

模块连接

模块引脚GPIO
VCC5V
GNDGND
A0PA1
D0

这次我根据自己的设计需求,烟雾仅作为报警项。
不需要测量具体气体浓度,故选择数字量输出即可。
(连接A0为输出数字量,连接D0为模拟量输出)

具体程序

.c文件

u8 MQ2_Init(void)
{  
  GPIO_InitTypeDef  GPIO_InitStructure;
  
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);  //使能PB端口时钟
 
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;     //PA端口配置
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;    //下拉输入
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOA, &GPIO_InitStructure);     //初始化IO口
  GPIO_SetBits(GPIOA,GPIO_Pin_1);       //PA1 
      

} 

.h文件

#ifndef __MQ2_H
#define __MQ2_H
#include "stm32f10x.h"
#define  MQ2   PAin(1)
#define  MQ2_PIN  GPIO_Pin_1
#define  MQ2PORT  GPIOA
#define  MQ2_CLKLINE    RCC_APB2Periph_GPIOA
extern void MQ2Configuration(void);
#endif

代码同昨日的红外检测基本结构相同,只更改了管脚部分。
测试实现功能,无异常。

关于模拟量输出

自己还尝试了关于模拟量的输出,主要借鉴了一位博主的内容
特在此附上相关博文链接
https://blog.csdn.net/weixin_45419341/article/details/114273459


版权声明:本文为onewingone原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。