基于物联网的智能窗户设计day3
MQ-2烟雾传感模块
MQ系列传感器是使用非常广泛的低成本传感器,广泛应用于家庭或工厂的气体泄漏监测装置。
MQ系列传感器使用的敏感材料是活性很高的金属氧化物半导体,传感器加热后,在不同气体浓度中电导率不同。使用简单的电路就可以将电导率的变化转换成与该气体浓度相对应的信号输出了。
MQ-2传感器对可燃气、烟雾等气体灵敏度高,基于MQ-2的烟雾传感器模块通过电路设计,提供了两种输出方式:
1.数字量输出:通过板载电位器设定浓度阈值,当检测到环境气体浓度超过阈值时,通过数字引脚DO输出低电平。
2.模拟量输出:浓度越高,AO引脚输出的电压值越高,通过ADC采集的模拟值越高。
模块连接
| 模块引脚 | GPIO |
|---|---|
| VCC | 5V |
| GND | GND |
| A0 | PA1 |
| 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版权协议,转载请附上原文出处链接和本声明。