基于STM32的学习记录--MQ系列计算公式
目录
MQ-2
定义
计算
MQ-4
定义
公式
MQ-7
定义
公式
MQ-135
定义
公式
所有的MQ系列传感器都需要一定的预热时间进行一个精度的校准
MQ-2
定义
//R2-1K.
#define SMOG_PIN46_R 1000 //烟雾传感器管脚4、6接出到地的电阻值
#define SMOG_READ_TIMES 10 //定义烟雾传感器读取次数,读这么多次,然后取平均值
计算
//读取烟雾传感器的电压值
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;
}
MQ-4
定义
#define MAX_CONVERTED_VALUE 4095 /* Max converted value */
#define VREF 3300
公式
float MQ4_Get_Vol(void)
{u32 temp_val=0;u8 t;for(t=0;t<SMOG_READ_TIMES;t++){temp_val+=ADC_ConvertedValue[1]; //读取ADC值Delay_ms(SMOG_READ_TIMES);}temp_val/=5;//得到平均值return (u16)temp_val;
}
u16 MQ_4_Value(void)
{u16 ppm = 0;u16 temp = MQ4_Get_Vol();printf("%d\n",temp);ppm =temp*VREF/MAX_CONVERTED_VALUE ;return ppm;
}
MQ-7
定义
#define CAL_PPM 10 // 校准环境中PPM值
#define RL 10 // RL阻值
公式
static float R0;// 传感器校准函数
void MQ7_PPM_Calibration(float RS)
{R0 = RS / pow(CAL_PPM / 98.322, 1 / -1.458f);
}// 获取传感器的值
float MQ7_GetPPM(void)
{float Vrl = 3.3f * ADC_ConvertedValue[3]/ 4095.f;float RS = (3.3f - Vrl) / Vrl * RL;MQ7_PPM_Calibration(RS);float ppm = 98.322f * pow(RS/R0, -1.458f);return ppm;
}
MQ-135
定义
#define MAX_CONVERTED_VALUE 4095 /* Max converted value */
#define VREF 3300
公式
//读取MQ-135传感器的电压值
float MQ135_Get_Vol(void)
{u32 temp_val=0;u8 t;for(t=0;t<SMOG_READ_TIMES;t++){temp_val+=ADC_ConvertedValue[2]; //读取ADC值Delay_ms(SMOG_READ_TIMES);}temp_val/=5;//得到平均值return (u16)temp_val;
}
u16 MQ_135_Value(void)
{u16 ppm = 0;u16 temp = MQ135_Get_Vol();printf("%d\n",temp);ppm =temp*3300/4095 ;return ppm;
}
基于STM32的学习记录--MQ系列计算公式相关推荐
- 基于STM32跑步路径记录
基于STM32跑步路径记录 随着科技不断进步,电子化设备不断进入涌入我们的日常生活.生活水平的提高,各项健身运动应运而生,然后,健身运动不能盲目进行,科学的健身方式才能有效的提升我们自身的身体素质 ...
- STM32的学习记录--单个模块开发思路
1. 前言 很久没写STM32的学习博客了,不是因为没在搞,而且因为STM32要学习的部分太多,而且代码量太大了,有些代码还涉及到版权问题,就一直没写,最近刚好在搞一个智能设备有关WiFi模块的开发, ...
- 基于STM32的学习型通用红外遥控设备的设计实现(一)
1.1处理器 处理器为STM32,代码在其两个系列的CPU上调试通过,为STM32F103ZET和STM32F103VBT. 软件平台:Keil uVision4;电路设计:Altium Design ...
- STM32的学习记录--2.WiFi模块的使用
本次学习用的单片机是STM32F103C8T6 本次学习用的WiFi模块是ESP8266 本博客仅用于课余学习,不可商用!!! 如有侵权,请告知我删除博客,谢谢配合. 以下学习资料均在云盘,仅供学习交 ...
- 78、基于STM32单片机学习型搬运机器人四自由度机械臂机械手遥感控制设计
毕设帮助.开题指导.技术解答(有偿)见文末. 目录 摘要 一.硬件方案 二.设计功能 三.实物图 四.原理图 五.PCB图 六.程序源码 七.资料包括 摘要 在当今大规模制造业中,企业为提高生产效率, ...
- STM32的学习记录--1.准备工作
前言 本次学习用的单片机是STM32F103C8T6 本博客仅用于课余学习,不可商用!! 如有侵权,请告知我删除博客,谢谢配合. 以下学习资料均在云盘,仅供学习交流 禁止用于商业用途 资料下载: 链接 ...
- Spark-Core源码学习记录 3 SparkContext、SchedulerBackend、TaskScheduler初始化及应用的注册流程
Spark-Core源码学习记录 该系列作为Spark源码回顾学习的记录,旨在捋清Spark分发程序运行的机制和流程,对部分关键源码进行追踪,争取做到知其所以然,对枝节部分源码仅进行文字说明,不深入下 ...
- 基于 STM32 的语音识别智能家居控制系统的设计(LD3320语音识别芯片+ESP8266 WIFI模块+DHT11温湿度采集+MQ系列 烟雾及可燃气体+蜂鸣器+步进电机模拟窗帘+OLED液晶显示+
## **基于 STM32 的语音识别智能家居控制系统的设计(LD3320语音识别芯片+ESP8266 WIFI模块(阿里云 或ONENET或局域网)+DHT11温湿度采集+MQ系列 烟雾及可燃气体+ ...
- STM32学习记录——烟雾传感器的使用
文章目录 前言 一.学习目的 二.模块介绍 三.代码记录 总结 前言 这次记录一下烟雾传感器的学习,由于烟雾传感器的资料比较杂,算法比较多,对我来说也比较难,所以我的代码中算法部分是不太具有参考价值, ...
最新文章
- php fread读行,如何使fread阻塞和读取直到结束?
- Temporary ASP.Net Files探究
- Linux-lsof命令
- 安阳职业技术学院计算机录取分数线,安阳职业技术学院录取分数线2021是多少分(附历年录取分数线)...
- ARIMA模型建模步骤
- 1.3编程基础之算术表达式与顺序执行 12 计算球的体积
- 友价虚拟商城实物商城PC端模板18套+手机模板两套
- 在Linux中模拟击键和鼠标移动
- K3/Cloud 用插件打开一张已存在的单据
- 计算机5800计算道路标高程序,CASIOfx-5800p计算器土木工程测量计算程序开发与应用...
- 【2020年高被引学者】 韩家炜 伊利诺伊大学香槟分校
- 【java学习之旅】——JSP入门
- exsi rh2288hv5 驱动_华为2288H V5阵列卡驱动下载|
- 使用vue-i18n实现多语言
- [休闲]GDC China 2007上海中国游戏开发者大会
- 转:著名的100个管理定律点评8 - 竞争决胜的智慧与策略
- 热电偶 matlab,基于MATLAB的陶瓷窑炉温度与热电偶热电势关系的数学模型研究
- 那些值得一读再读的好书
- WAF-Web应用防护系统
- 我的世界Mod整合包中的Mod下载