- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
使用夏普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
#incl udestdlib.h
intdustPin=0;
intledPower=2;
intdelayTime=280;
intdelayTime2=40;
floatoffTime=9680;
intdustVal=0;
inti=0;
floatppm=0;
char爏[32];
floatvoltage=0;
floatdustdensity=0;
floatppmpercf=0;
voidsetup(){
燬erial.begin(9600);
?pinMode(ledPower,OUT PUT);
?/ 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+dus tVal;
?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;
爄f(ppmpercf0)
牋?ppmpercf=0;
爄f(dustdens ity0)
牋?dustdensity=0;
爄f(dustdensity0.5)
牋?dustdensity=0.5;
燬tringdataString=;
?dataString+=dtostrf(voltage,9,4,s);
?dataString+=,;
?dataString+=dtostrf(dustdensity,5,2,s);
?dataString+=,;
?dataString+=dtostrf(ppmpercf,8,0,s);
?i=0;
? ppm=0;
燬erial.println(dataString);
?delay(1000);
您可能关注的文档
最近下载
- 120个文言实词小故事全文翻译.pdf VIP
- 皮肤粘膜淋巴结综合症的护理.ppt
- 电声音响工程师招聘笔试题与参考答案(某世界500强集团)2024年.docx VIP
- XXX大学学生更换宿舍申请审批表.doc VIP
- 2021常用电力线路阻抗表.docx VIP
- 《城市规划原理》同济大学城市规划原理讲义.pdf VIP
- 第3课《公民基本权利》精品说课课件课件-道德与法治八年级下册.pptx VIP
- 医学影像技术专业《X线检查技术》课程标准.docx VIP
- 《社区警务工作规范(试行)》复习测试卷附答案.docx
- 《管理基础(第四版)》 课件全套 张云河 第1--6单元 管理学基础概述---控制职能.pptx
文档评论(0)