蓝色星空 发表于 2013-2-23 22:40 static/image/common/back.gif
我用的是LZ的程度,但是我感觉这个程序有问题,测量时间没有精确控制到30000毫秒,因为要等最后一个低电平结 ...
duration = pulseIn(pin, LOW);
会带来你说的这个问题么?ppd 数据不平均确实跳动比较大。
laoliu1982 发表于 2013-3-10 22:43 static/image/common/back.gif
duration = pulseIn(pin, LOW);
会带来你说的这个问题么?ppd 数据不平均确实跳动比较大。
如果严格按照dataset上说的30000毫秒的话,这个程序要等最后一个低电平结束,实际上差不多是测了30050-30200毫秒中的低电平占空比,多出来的50-200毫秒是低电平,这就导致最后算出来的低电平占空比比实际稍高一点,假如本来低电平占空比3.33%,即1000/30000,用这个程序测可能是1200/30200=3.97%,不过传感器本身就不精确,这点误差问题也不大。今天试了一下gp2y1010au0f,比dsm501a要稍微稳定一点,不过要外接一个电阻一个电容,比较麻烦
好东西,谢谢lz的分享。
太高端了。
蓝色星空 发表于 2013-3-11 00:14 static/image/common/back.gif
如果严格按照dataset上说的30000毫秒的话,这个程序要等最后一个低电平结束,实际上差不多是测了30050-30 ...
有什么方法可以杜绝这种抖动么?看你后来给出的程序,没看出怎么能降低抖动。
可以用这个账号登陆进去,导出数据 open.lewei50.com
用户名:office-air:test
密码:111111
laoliu1982 发表于 2013-3-11 16:36 static/image/common/back.gif
有什么方法可以杜绝这种抖动么?看你后来给出的程序,没看出怎么能降低抖动。
可以用这个账号登陆进去 ...
我的程序也不对,应该是ratio = (lowpulseoccupancy-(endtime-starttime - sampletime_ms)*1000)/(sampletime_ms*10.0);吧,把多算上的那段低电平时间再减掉,并且两次测量之间间隔一段时间,应该会好一点。不过这样也没法减小抖动的。
好的,我去看看
laoliu1982 发表于 2013-3-11 16:36 static/image/common/back.gif
有什么方法可以杜绝这种抖动么?看你后来给出的程序,没看出怎么能降低抖动。
可以用这个账号登陆进去 ...
附件是我测的数据,DSM的数据每两行是一组,分别是占空比、灰尘浓度、采样时间
换了一个DSM和arduino板子,跳动变大了。不知道是传感器的问题还是板子电源的问题,哪位有这方面的经验?
蓝色星空 发表于 2013-3-11 00:14 static/image/common/back.gif
如果严格按照dataset上说的30000毫秒的话,这个程序要等最后一个低电平结束,实际上差不多是测了30050-30 ...
求问一下GP2Y1010AU0F如何使用。。要是有电路图就好了··多谢多谢~~~
lizh1245 发表于 2013-4-7 13:54 static/image/common/back.gif
求问一下GP2Y1010AU0F如何使用。。要是有电路图就好了··多谢多谢~~~
一楼有写啊
http://www.howmuchsnow.com/arduino/airquality/
lizh1245 发表于 2013-4-7 13:54 static/image/common/back.gif
求问一下GP2Y1010AU0F如何使用。。要是有电路图就好了··多谢多谢~~~
GP2Y1010AU0F按照楼上给的资料接就好了,我也是照着接的
laoliu1982 发表于 2013-4-7 15:55 static/image/common/back.gif
一楼有写啊
http://www.howmuchsnow.com/arduino/airquality/
DSM501A果然是需要好一点的电源,楼主可以试试PPD用好一点的电源是否更稳定
好啊,你用dsm501A的数据平稳了些?方便发一些上来看看么?
本帖最后由 fisherdl 于 2013-12-25 16:54 编辑
貌似这个帖子已经沉了,但是还是有个问题想不明白,希望可以请教一下。关于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的数来,但是不合乎逻辑呀,请教各位了。
顺便请教一下 ,我在淘宝看到 “空气传感器灰尘传感器 PPD42NS PPD4NS粉尘传感器pm2.5传感器包邮”.
没搞明白PPD42NS 和 PPD4NS是一个东西还是两个不同东西,查到官方网站 http://www.sca-shinyei.com/?cmd=search&keyword=+PPD4NS&x=41&y=3看起来是一个东西,那为啥要起2个代号?另外,淘宝上看到有 45的还有80的,有啥差别?便宜的是拆机件?