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

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

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
使用夏普GP2Y1010AU0F灰尘传感器检测空气质量

使用夏普GP2Y1010AU0F灰尘传感器检测空气质量 夏普灰尘传感器价格较便宜,能检测出室内空气中的灰尘和烟尘含量.? 检测原理 其原理如下图,传感器中心有个洞可以让空气自由流过,定向发射LED光,通过检测经过空气中灰尘折射过后的光线来判断灰尘的含量。 电路图 因为数据是通过pin 5的电压模拟信号输出的,而树莓派的引脚不支持模拟信号直接读取(需要增加数模转换芯片),所以先用Arduino来实验。 Arduino 代码 ? 根据电路图, 把Arduino和传感器连接起来: Sharp pin 1 (V-LED) = 5V 串联1个150欧姆的电阻(最好在电阻一侧和GND之间再串联一个220uf的电容) Sharp pin 2 (LED-GND) = GND Sharp pin 3 (LED) = Arduino PIN 2 (开关LED) Sharp pin 4 (S-GND) = GND 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 /pic//datasheets/Sensors/gp2y1010au_e.pdf /pic//?p=479 Sharp pin 1 (V-LED)?? = 5V (connected to 150ohm resister) Sharp pin 2 (LED-GND) = Arduino GND pin Sharp pin 3 (LED)???? = Arduino pin 2 Sharp pin 4 (S-GND)?? = Arduino GND pin Sharp pin 5 (Vo)????? = Arduino A0 pin Sharp pin 6 (Vcc)???? = 5V */ #includeSPI.h #includestdlib.h intdustPin=0; intledPower=2; intdelayTime=280; intdelayTime2=40; floatoffTime=9680; intdustVal=0; inti=0; floatppm=0; char?s[32]; floatvoltage=0; floatdustdensity=0; floatppmpercf=0; voidsetup(){ ?Serial.begin(9600); ? pinMode(ledPower,OUTPUT); ?// give the ethernet module time to boot up: ? delay(1000); ? i=0; ? ppm=0; } voidloop(){ ? i=i+1; ? digitalWrite(ledPower,LOW);// power on the LED ? delayMicroseconds(delayTime); ? dustVal=analogRead(dustPin);// read the dust value ? ppm=ppm+dustVal; ? delayMicroseconds(delayTime2); ? digitalWrite(ledPower,HIGH);// turn the LED off ? delayMicroseconds(offTime); ? voltage=ppm/i*0.0049; ? dustdensity=0.17*voltage-0.1; ? ppmpercf=(voltage-0.0256)*120000; ?if(ppmpercf0) ??? ppmpercf=0; ?if(dustdensity0) ??? dustdensity=0; ?if(dustdensity0.5) ??? dustdensity=0.5; ?StringdataString=; ? dataString+=dtostrf(voltage,9,4,s); ? dataString+=,; ? dataString+=dtostrf(dustdensity,5,2,s); ? dataString+=,; ? dataString+=dtostrf(ppmpercf,8,0,s); ? i=0; ? ppm=0; ?Serial.println(dataString); ? delay(1000); } 把传感器和Ardiuno连接好后,可以连续打印出传感器的输出电压值。输出电压大小和灰尘含量

文档评论(0)

ccx55855 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档