最近入手空气质量模块 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 测试的更多相关文章

  1. XBee模块户外通信距离测试

    Digi的XBee模块在市面上同类产品中,除了稳定性和可靠性最受推崇外,在距离测试中一般都比竞争对手的产品略胜一筹.户外测试需要注意避免模块自身以外的因素造成的测试结果不理想. 2.4G的模块有Zig ...

  2. 使用Arduino Nano驱动Lora模块

    使用Arduino Nano驱动Lora模块 为什么选用Lora 射频通信芯片有很多种,但是一般在同样功耗下,距离没有Lora远;同等范围下,没有Lora节能. Lora通信只适用于低速率,高延时的场 ...

  3. 【星云测试】开发者测试(4)-采用精准测试工具对dubbo微服务应用进行测试

    简介:本文主要目的是把现今主流的Dubbo框架项目和精准测试进行对接,通过精准测试的数据穿透.数据采集.测试用例与代码的双向追溯.数据分析等一系列精准测试的特有功能达到对项目质量的保证. 本次环境搭建 ...

  4. [翻译] API测试最佳实践 - 组织你的测试

    组织你的测试 适用级别:初学者 在最底层,一个测试步骤(Test Step)用来验证一个单独的操作.组合若干测试步骤到测试用例,允许你验证那些被分隔出来的一个一个的功能,这些功能是应用程序所需要的.接 ...

  5. Web测试要点 做移动端的测试,也做web端的测试,甚至后面桌面端的测试和后台的测试也做了,基本上把我们产品各个端都玩了一轮

    Web测试要点 一.功能测试 1.链接测试 (1).测试所有链接是否按指示的那样确实链接到了该链接的页面:  (2).测试所链接的页面是否存在:  (3).保证Web应用系统上没有孤立的页面(所谓孤立 ...

  6. 测试工程师如何使用 CODING 进行测试管理

    CODING 为您的企业提供从概念到软件开发再到产品发布的全流程全周期软件研发管理,为您的研发团队提供全程助力,帮助研发团队捋清需求.不断迭代.快速反馈并能实时追踪项目进度直到完成.同时 CODING ...

  7. 外包项目测试工作量评估指南&外包项目测试验收流程

    ## ### 外包项目测试工作量评估指南 1.目的        编写本指导书的目的旨在为我公司进行测试外包服务工作进行指导,帮助项目经理和相关人员编写测试方案.评估工作量.制定测试计划和测试策略等, ...

  8. web测试要点、方法_web端测试大全总结

    一.功能测试 1.1链接测试 链接是web应用系统的一个很重要的特征,主要是用于页面之间切换跳转,指导用户去一些不知道地址的页面的主要手段,链接测试一般关注三点: 1)链接是否按照既定指示那样,确实链 ...

  9. 渗透测试工具BurpSuite做网站的安全测试(基础版)

    渗透测试工具BurpSuite做网站的安全测试(基础版) 版权声明:本文为博主原创文章,未经博主允许不得转载. 学习网址: https://t0data.gitbooks.io/burpsuite/c ...

随机推荐

  1. MySQL索引学习记录

    参考资料: http://blog.csdn.net/v_july_v/article/details/6530142http://blog.codinglabs.org/articles/theor ...

  2. jquery plupload上传插件

    http://www.jianshu.com/p/047349275cd4 http://www.cnblogs.com/2050/p/3913184.html demo地址: http://chap ...

  3. mysql 的索引hash和b+tree 区别

    索引hash相当于数组,键值对组合,对于id = 6或者status= 2这样条件查询,但是对于id>12等这样,用btree索引最好.

  4. 数据结构之顺序队列(C实现)

    一.队列是什么 队列是一种可以实现“先进先出”的存储结构. 队列通常可以分为两种类型: 一.顺序队列,采用顺序存储,当长度确定时使用. 顺序队列又有两种情况: ①使用数组存储队列的称为静态顺序队列. ...

  5. Linux上安装wine qq的方法

    linxu上安装QQ的发 百度网盘 提取码:f2sn 步骤一.安装wine(详见:https://www.winehq.org/download) // ubuntu/ubuntukylin/mint ...

  6. Android 性能优化(8)网络优化( 4)Optimizing App-Initiated Network Use

    Optimizing App-Initiated Network Use This lesson teaches you to Batch and Schedule Network Requests ...

  7. python批量下载图片

    从数据库拿了一批图片地址,需要一张一张的把图片下载下来,自从有了python,想到能省事就琢磨如何省事. 代码如下: import urllib.requestf=open("E:\999\ ...

  8. 图片分离,试用于各种文件跨站传输,post方法传输

    主要思想:把不通形式的文件或者文字,以字节编码流的形式传递过去然后反解析后重新生成原文件 //------------------------------发送部分------------------- ...

  9. 在dataGridView空间中添加数据

    //查询信息sql语句 string sql = "select studentName,addres from student"; SqlDataAdapter adapter ...

  10. Apache JServ protocol服务 怎么关闭?

      Apache JServ protocol  =  AJP 解决方案:修改tomcat 的service.xml配置文件 将 <Connector port="8009" ...