标题:
STM32+MQ-2烟雾传感器源程序
[打印本页]
作者:
北埼玉
时间:
2021-5-10 15:26
标题:
STM32+MQ-2烟雾传感器源程序
最近在做C8T6的烟雾模块,网上参考有点少,整理一下分享给大家。
STM32F103C8T6自带AD,我买了个MQ-2模块直接接线
烟雾传感器
单片机
VCC
3.3V
GND
GND
A0
PB6(可以改)
附上压缩包,自行下载吧
串口调试助手选择 115200-N-8-1
引脚可以改 smog.c void Smog_Init(void)选择自己需要的引脚即可
单片机源程序如下:
#include "smog.h"
#include "delay.h"
#include "usart.h"
#include "adc.h"
//初始化烟雾传感器
void Smog_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//使能PORTF时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; //PA6 anolog输入
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; //模拟输入引脚
GPIO_Init(GPIOA, &GPIO_InitStructure);
Adc2_Init();
}
//读取烟雾传感器的电压值
u16 Smog_Get_Vol(void)
{
u32 temp_val=0;
u8 t;
for(t=0;t<SMOG_READ_TIMES;t++)
{
temp_val+=Get_Adc2(SMOG_ADC_CHX); //读取ADC值
delay_ms(5);
}
temp_val/=SMOG_READ_TIMES;//得到平均值
printf("Smog_ADC_Val:%d\r\n", temp_val);
return (u16)temp_val;
}
//分析从烟雾传感器获取的电压值,通过公式计算出可燃气体的浓度值
//设Rs为传感器的体电阻,其中气体浓度上升,将导致Rs下降。而Rs的下降则会导致,MQ-2的4脚、6脚对地输出的电压增大。
//所以气体浓度增大,其输出的电压也会增大。因Rs在不同气体中有不同的浓度值,所以该函数仅作为参考.
u16 Smog_Trans_Concentration(void)
{
u16 ulVal = 0;
u16 temp_val = Smog_Get_Vol();
u16 Rs;
Rs = SMOG_PIN46_R*(4096.0/temp_val - 1);
printf("Smog_Rs_Val:%d\r\n", Rs);
ulVal = Rs;//这里填写公式根据Rs计算气体浓度
return ulVal;
}
复制代码
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "smog.h"
int main(void)
{
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
USART1_init(); //串口初始化为115200
Smog_Init();
while(1)
{
Smog_Trans_Concentration();
delay_ms(300);
}
}
复制代码
所有资料51hei提供下载:
smog成功.7z
(178.58 KB, 下载次数: 400)
2021-5-10 17:13 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
jizhongbiao
时间:
2021-5-12 18:29
用stm32 浪费了
作者:
北埼玉
时间:
2021-5-13 16:00
jizhongbiao 发表于 2021-5-12 18:29
用stm32 浪费了
是设计的其中一个模块,不是只做这个的
作者:
woshishui22
时间:
2021-5-15 10:02
现在芯片太贵了,需要根据需求选择芯片了
作者:
闷得儿橙
时间:
2021-9-27 08:55
有没有考虑加个温湿度和水滴
作者:
鱼丫
时间:
2022-1-20 13:44
大佬想问一下,使用该程序之后,串口助手波特率115200,停止位1,数据位1,无奇偶位校验,但是却提示没有串口呢?
作者:
叶知叶
时间:
2022-3-17 12:07
为什么串口出现的数据都是0?
作者:
zsheng2011
时间:
2022-3-18 13:26
这么大一个芯片驱动这么小一个程序
作者:
fhff
时间:
2023-2-21 18:55
为啥我用你的源代码oled上显示是的数据特别大,是17000多
作者:
hezezeze
时间:
2023-4-18 13:42
刚好用上 谢谢博主 很棒 支持感谢
作者:
篝火下的约定
时间:
2024-4-11 17:06
你好,博主,是32的PB6直接接AO吗?不需要ADC芯片吗?
作者:
whw-1
时间:
2024-5-19 13:25
up体电阻是啥,是传感器外接的保护电阻吗
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1