最近入手空气质量模块 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. 【167】IDL 中相关技巧

    IDL 中相关技巧 1. 注释:分号“;”表示注释内容的开始. 2. 续行:最后一个字符是“$”,那么本行将紧接着下一行,续行标志.(换行符,$+回车) 3. 中文编码:窗口>首选项>常规 ...

  2. source命令用法(转载)

    转自:http://zhidao.baidu.com/link?url=mNfsPHSjTEm7llgyMYx0UVNwkJmD_cxLeHtZnHcM6Ms8LDXofVHka_EzHi6GltbR ...

  3. Linux 进程间通讯方式 pipe()函数 (转载)

    转自:http://blog.csdn.net/ta893115871/article/details/7478779 Linux 进程间通讯方式有以下几种: 1->管道(pipe)和有名管道( ...

  4. Java DAO模式

    DAO模式: DAO(DateAccessObject,数据存取对象) 位于业务逻辑和持久化数据之间,实现对持久化数据的访问. DAO组成: DAO接口: 数据库的所有操作定义成抽象方法,可以提供多种 ...

  5. (数论)51NOD 1135 原根

    设m是正整数,a是整数,若a模m的阶等于φ(m),则称a为模m的一个原根.(其中φ(m)表示m的欧拉函数)   给出1个质数P,找出P最小的原根. Input 输入1个质数P(3 <= P &l ...

  6. python orm / 表与model相互转换

    orm英文全称object relational mapping,就是对象映射关系程序,简单来说我们类似python这种面向对象的程序来说一切皆对象,但是我们使用的数据库却都是关系型的,为了保证一致的 ...

  7. json和Jsonp 使用总结(2)

    1.Jsonp的使用 var phoneAgent = navigator.userAgent; var urlDomaintest = " "; function getHref ...

  8. ViewPager(4)用viewpager实现splash view

    1,示例 2,代码 SplashMain.java import android.os.Bundle; import android.support.v4.app.Fragment; import a ...

  9. Quartz.Net学习笔记(2)-简介

    一.Quartz.Net是什么 1.来源 Quartz.Net是一个开源的作业调度框架: 2.下载地址 官网地址:http://www.quartz-scheduler.net/documentati ...

  10. Mysql阿里数据源配置参考

    maven pom.xml配置 <dependency> <groupId>com.alibaba</groupId> <artifactId>drui ...