使用夏普GP2Y1010AU0F灰尘传感器检测空气质量...docVIP

使用夏普GP2Y1010AU0F灰尘传感器检测空气质量...doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
使用夏普GP2Y1010AU0F尘埃传感器检测空气质量.. 使用夏普GP2Y1010AU0F尘埃传感器检测空气质量.. PAGE / NUMPAGES 使用夏普GP2Y1010AU0F尘埃传感器检测空气质量.. 使用夏普 GP2Y1010AU0F 尘埃传感器检测空气质量 夏普尘埃传感器价钱较廉价,能检测出室内空气中的尘埃和烟尘含量 . 检测原理 其原理以下列图,传感器中心有个洞能够让空气自由流过,定向发射 LED 光,经过检测经过空气中尘埃折射 事后的光芒来判断尘埃的含量。 电路图 由于数据是经过 pin 5 的电压模拟信号输出的, 而树莓派的引脚不支持模拟信号直接读取 (需要增添数模转 换芯片),因此先用 Arduino 来实验。 Arduino 代码 依据电路图, 把 Arduino 和传感器连结起来: 1. Sharp pin 1 (V-LED) = 5V 串连 1 个 150 欧姆的电阻(最幸亏电阻一侧和 220uf 的电容)  GND之间再串连一个 Sharp pin 2 (LED-GND) = GND 3. Sharp pin 3 (LED) = Arduino PIN 2 (开关 LED) Sharp pin 4 (S-GND) = GND 5. Sharp pin 5 (Vo) = Arduino A0 pin (空气质量数据经过电压模拟信号输出) Sharp pin 6 (Vcc) = 5V /* Interface to Sharp GP2Y1010AU0F Particle Sensor Program by Christopher Nafis Written April 2012 5. 8. 9. Sharp pin 1 (V-LED) = 5V (connected to 150ohm resister) Sharp pin 2 (LED-GND) = Arduino GND pin 11. Sharp pin 3 (LED) = Arduino pin 2 12. Sharp pin 4 (S-GND) = Arduino GND pin 13. Sharp pin 5 (Vo) = Arduino A0 pin 14. Sharp pin 6 (Vcc) = 5V */ #include SPI.h #include stdlib.h int dustPin =0; int ledPower =2; int delayTime =280; int delayTime2 =40; float offTime =9680; int dustVal =0; int i =0; float ppm=0; 28. char s[ 32]; float voltage =0; float dustdensity =0; float ppmpercf =0; void setup (){ Serial . begin ( 9600); pinMode ( ledPower , OUTPUT); // give the ethernet module time to boot up: delay ( 1000); 39. i =0; ppm=0; } 43. void loop (){ i =i +1; 46. digitalWrite ( ledPower , LOW);// power on the LED delayMicroseconds ( delayTime ); dustVal =analogRead ( dustPin );// read the dust value ppm=ppm+dustVal ; delayMicroseconds ( delayTime2 ); 51. digitalWrite ( ledPower , HIGH);// turn the LED off delayMicroseconds ( offTime ); 54. voltage =ppm/ i * 0.0049 ; 55. dustdensity =0.17 * voltage - 0.1 ; ppmpercf =( voltage - 0.0256 )* 120000; if ( ppmpercf 0) 58. ppmpercf =0; if ( dustdensity 0) 60. dustdensity =0; if ( dustdensity 0.5 ) 62. dustdensity =0.5 ; String dataString = ; 64. dataString +=dtostrf ( voltage , 9,

文档评论(0)

187****3018 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档