Arduino 测试空气质量等级模块 ZP07-MP503 测试
最近入手空气质量模块 ZP07-MP503,用Arduino采样数据进行测试
先上图看看 ZP07-MP503 产品


ZP07-MP503 一共4个管脚,功能如下
5V 电源输入5V
GND 电源输入0V
A 信号输出,以脉冲宽度形式输出
B 厂家备用
信号A 以高低电平脉冲宽度形式输出,对应污染等级参照下表:

ZP07-MP503 模块参数手册 链接:
测试结果

本实例中,我将 ZP07-MP503 的 A号引脚 接在了 Arduino 的 8号引脚上
Arduino 源码如下,测试正常!
//
// Author: Aiyauto
// VERSION: 0.0.1
// Date:2017/08/16
// PURPOSE: ZP07_MP503 空气质量模块检测 示例 for Arduino
//
// DATASHEET:
//
// URL:
//
// int airQuality; //空气质量等级 0-10 void setup() {
Serial.begin();
} void loop() {
airQuality = ZP07_MP503();
Serial.print(" 当前空气质量等级:");
Serial.println(airQuality);
} int ZP07_MP503(int pinA) { /* 初始化 */
pinMode(pinA, INPUT);
unsigned long millisTimes = millis();
unsigned long startMillisTimes = millisTimes;
unsigned long stopMillisTimes;
signed long deltaMillisTimes = millisTimes - startMillisTimes;
bool turnState = false;
bool pinAstate = digitalRead(pinA);;
bool pinAstateLast = pinAstate;
int result; /* 测试读取状态 */
while (true) {
pinAstate = digitalRead(pinA); //读取管脚状态 if (pinAstate != pinAstateLast) {
if (turnState == true) {
stopMillisTimes = millis();
if (pinAstate == false) {
deltaMillisTimes = stopMillisTimes - startMillisTimes;
}
else {
deltaMillisTimes = - stopMillisTimes + startMillisTimes;
}
result = (deltaMillisTimes + ) / ; //运算结果四舍五入
break; //跳出循环
}
if (turnState == false) {
startMillisTimes = millis(); //刷新当前时间
turnState = true; //更新标记
}
pinAstateLast = pinAstate;
} millisTimes = millis();
deltaMillisTimes = millisTimes - startMillisTimes;
if ( deltaMillisTimes > ) { //结果判定,超时跳出循环
if (pinAstate == true) { //空气质量等级10
result = ;
}
if (pinAstate == false) { //空气质量等级0
result = ;
}
break;
}
} // Serial.print(" pinAstate:");
// Serial.print(pinAstate);
// Serial.print(" , 空气质量等级:");
// Serial.print(result);
// Serial.print(", deltaMillisTimes:");
// Serial.println(deltaMillisTimes); return result; //返回空气质量等级结果 }
Arduino 测试空气质量等级模块 ZP07-MP503 测试的更多相关文章
- XBee模块户外通信距离测试
Digi的XBee模块在市面上同类产品中,除了稳定性和可靠性最受推崇外,在距离测试中一般都比竞争对手的产品略胜一筹.户外测试需要注意避免模块自身以外的因素造成的测试结果不理想. 2.4G的模块有Zig ...
- 使用Arduino Nano驱动Lora模块
使用Arduino Nano驱动Lora模块 为什么选用Lora 射频通信芯片有很多种,但是一般在同样功耗下,距离没有Lora远;同等范围下,没有Lora节能. Lora通信只适用于低速率,高延时的场 ...
- 【星云测试】开发者测试(4)-采用精准测试工具对dubbo微服务应用进行测试
简介:本文主要目的是把现今主流的Dubbo框架项目和精准测试进行对接,通过精准测试的数据穿透.数据采集.测试用例与代码的双向追溯.数据分析等一系列精准测试的特有功能达到对项目质量的保证. 本次环境搭建 ...
- [翻译] API测试最佳实践 - 组织你的测试
组织你的测试 适用级别:初学者 在最底层,一个测试步骤(Test Step)用来验证一个单独的操作.组合若干测试步骤到测试用例,允许你验证那些被分隔出来的一个一个的功能,这些功能是应用程序所需要的.接 ...
- Web测试要点 做移动端的测试,也做web端的测试,甚至后面桌面端的测试和后台的测试也做了,基本上把我们产品各个端都玩了一轮
Web测试要点 一.功能测试 1.链接测试 (1).测试所有链接是否按指示的那样确实链接到了该链接的页面: (2).测试所链接的页面是否存在: (3).保证Web应用系统上没有孤立的页面(所谓孤立 ...
- 测试工程师如何使用 CODING 进行测试管理
CODING 为您的企业提供从概念到软件开发再到产品发布的全流程全周期软件研发管理,为您的研发团队提供全程助力,帮助研发团队捋清需求.不断迭代.快速反馈并能实时追踪项目进度直到完成.同时 CODING ...
- 外包项目测试工作量评估指南&外包项目测试验收流程
## ### 外包项目测试工作量评估指南 1.目的 编写本指导书的目的旨在为我公司进行测试外包服务工作进行指导,帮助项目经理和相关人员编写测试方案.评估工作量.制定测试计划和测试策略等, ...
- web测试要点、方法_web端测试大全总结
一.功能测试 1.1链接测试 链接是web应用系统的一个很重要的特征,主要是用于页面之间切换跳转,指导用户去一些不知道地址的页面的主要手段,链接测试一般关注三点: 1)链接是否按照既定指示那样,确实链 ...
- 渗透测试工具BurpSuite做网站的安全测试(基础版)
渗透测试工具BurpSuite做网站的安全测试(基础版) 版权声明:本文为博主原创文章,未经博主允许不得转载. 学习网址: https://t0data.gitbooks.io/burpsuite/c ...
随机推荐
- 2017年最新VOS2009/VOS3000最新手机号段导入文件(手机归属地数据)
VOS2009.vos3000.vos5000最新手机号段归属地数据库导入文件. 基于2017年4月最新版手机号段归属地制作 共360569条记录,兼容所有版本的昆石VOS,包括VOS2009.vos ...
- springAOP配置XML方式配置切面报错error at ::0 formal unbound in pointcut
[错误配置文件] <aop:config> <aop:pointcut expression="execution(* net.fifteenho.service.impl ...
- Agar.io 简单但是有趣的网页游戏
攻略,进阶 上榜第一次 (有点水,九百多分) 上榜第二次 (完成四杀,逆袭上榜) 上榜第三次 (忘写名字,自己补上) 上榜第四次 (人生巅峰!) 上榜第五次 (踩了狗屎运,上榜这么容易了?收了一个小 ...
- ORACLE批量绑定FORALL与BULK COLLECT
FORALL与BULK COLLECT的使用方法: 1.使用FORALL比FOR效率高,因为前者只切换一次上下文,而后者将是在循环次数一样多个上下文间切换. 2.使用BLUK COLLECT一次取出一 ...
- LINQ数据库技术
LINQ(Language Integrated Qyery),中文名字是语言集成查询.它提供一个统一的编程概念和语法,编程人员不需要关心将要访问的是关系数据库还是XML数据,或是远程的对象,它都采用 ...
- Tuple类型的使用
1.什么是Tuple Tuple类型,可以存放任何类型 2.Tuple有哪些分类 .Net 4.0 定义了8个泛型Tuple类,和一个Tuple静态类 3.Tuple的使用
- java list遍历三种方法
JSONArray jsonArray = new JSONArray(); jsonArray.add("1"); jsonArray.add("2"); j ...
- [ CQOI 2014 ] 数三角形
\(\\\) Description 求 \(N\times M\) 的网格图上有多少个格点构成的三角形. 当三点共线的时候我们不认为这是一个三角形. \(n,m\le 10^4\) \(\\\) S ...
- 计算机二级C语言冲刺笔记。
2018-03-0618:32:26 风萧萧兮易水寒,壮士一去...... 四级依旧没过,计算机二级接踵而至, default语句在switch语句中可以省略,所以B错误:switch语句中并非每个c ...
- oracle创建临时表空间、用户表空间、创建用户关联表空间、授权等
1.创建临时表空间 CREATE TEMPORARY TABLESPACE test_temp TEMPFILE 'C:\oracle\product\10.1.0\oradata\orcl\test ...