极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14703|回复: 7

关于PPD42NS Dust Sensor

[复制链接]
发表于 2013-12-26 11:57:04 | 显示全部楼层 |阅读模式
在论坛潜水很久了,学习了不少兄弟们的经验。这是小弟第一次发贴,包涵包涵。

最近淘了个PPD42NS,但是有一个问题百思不得其解,遂要请教请教各位玩过PPD42NS的大虾。原贴请看 http://www.howmuchsnow.com/arduino/airquality/grovedust/

关于ratio的计算方法,原帖公式如下:
ratio=lowpulseoccupancy/(sampletime_ms*10.0);  // Integer percentage 0=>100
根据datasheet的理解,lowpulse时间总和占30secs的百分比,然后扩大100倍 (0-100)。
Lo Pulse Occupancy time / unit time (30sec) (%)

我就是和上边的公式联系不起来。
1)sampletime_ms=30000, 为什么要乘10?
2)如果用pulseIn(), 得到的lowpulseoccupancy时间大大超过30000ms, 为什么? 应该不会超过sampletime才对呀。干扰?
如果使用原帖程序,的确可以计算出一个0-100的数来,但是不合乎逻辑呀,请教各位了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2013-12-26 13:39:00 | 显示全部楼层
第一个问题:ratio=lowpulseoccupancy/(sampletime_ms*10.0);  lowpulseoccupancy单位是us,分母部分原先是sampletime_ms*1000,但是换算成百分比 要乘以 100%;
第二个问题,不知你是如何得出“得到的lowpulseoccupancy时间大大超过30000ms”,我是没有得到过。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-26 13:52:18 | 显示全部楼层
davidce 发表于 2013-12-26 13:39
第一个问题:ratio=lowpulseoccupancy/(sampletime_ms*10.0);  lowpulseoccupancy单位是us,分母部分原先是s ...

果然是一语道破天机,答案竟如此简单,却没有注意到。看了一下reference,pulsein果真返回的单位是微秒。“Returns: the length of the pulse (in microseconds)”,所以大大超过30000ms自然也不成立了,应该/10换算成ms。
非常感谢!
回复 支持 反对

使用道具 举报

发表于 2014-7-10 13:43:30 | 显示全部楼层
我在网上查找的pulseIn()函数,说返回的是ms啊,http://book.2cto.com/201209/4354.html
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-9-10 11:15:44 | 显示全部楼层
本帖最后由 fisherdl 于 2014-9-10 11:18 编辑
hbyiwen 发表于 2014-7-10 13:43
我在网上查找的pulseIn()函数,说返回的是ms啊,http://book.2cto.com/201209/4354.html


microseconds=微秒 通常简写 us
milliseconds=毫秒 通常简写 ms

的确很容易混淆。希望可以帮到你,避免浪费时间,少走弯路。
官方reference
pulseIn()

Description

Reads a pulse (either HIGH or LOW) on a pin. For example, if value is HIGH, pulseIn() waits for the pin to go HIGH, starts timing, then waits for the pin to go LOW and stops timing. Returns the length of the pulse in microseconds
回复 支持 反对

使用道具 举报

发表于 2014-9-10 11:57:54 | 显示全部楼层
fisherdl 发表于 2014-9-10 11:15
microseconds=微秒 通常简写 us
milliseconds=毫秒 通常简写 ms

翻譯的往往容易出錯, 要查資料, 還是看官網的比較準確.  
就是有錯, 也會較容易被人發現而更正.
回复 支持 反对

使用道具 举报

发表于 2014-9-10 14:30:31 | 显示全部楼层
我剛也買了一個, 也是 PWM 的 (i2c 版本缺貨), 不知樓主的測試如何?
樓主可以分享一下程式嗎?
回复 支持 反对

使用道具 举报

发表于 2014-9-12 23:28:41 | 显示全部楼层
本帖最后由 Super169 于 2014-9-12 23:30 编辑

請問你收到的數據變化大嗎?  這是我用了你的連結中的程式測試結果:

40302,0.13,70.41
0,0.00,0.62
60087,0.20,104.63
43927,0.15,76.68
0,0.00,0.62
91591,0.31,159.05
148566,0.50,257.34
101216,0.34,175.67
57898,0.19,100.84
10903,0.04,19.51
0,0.00,0.62
79305,0.26,137.84
126266,0.42,218.89
219730,0.73,379.88
242454,0.81,418.97
9438,0.03,16.98
4992,0.02,9.27


concentration 在短時間內, 由 0.62 到 420 的變動, 是否有問題?

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-15 23:45 , Processed in 0.038431 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表