使用夏普GP2Y1010AU0F灰尘传感器检测空气质量.docx
- 文档编号:1188226
- 上传时间:2022-10-18
- 格式:DOCX
- 页数:12
- 大小:805.77KB
使用夏普GP2Y1010AU0F灰尘传感器检测空气质量.docx
《使用夏普GP2Y1010AU0F灰尘传感器检测空气质量.docx》由会员分享,可在线阅读,更多相关《使用夏普GP2Y1010AU0F灰尘传感器检测空气质量.docx(12页珍藏版)》请在冰豆网上搜索。
使用夏普GP2Y1010AU0F灰尘传感器检测空气质量
使用夏普GP2Y1010AU0F灰尘传感器检测空气质量
夏普灰尘传感器价格较便宜,能检测出室内空气中的灰尘和烟尘含量.
检测原理
其原理如下图,传感器中心有个洞可以让空气自由流过,定向发射LED光,通过检测经过空气中灰尘折射过后的光线来判断灰尘的含量。
电路图
因为数据是通过pin5的电压模拟信号输出的,而树莓派的引脚不支持模拟信号直接读取(需要增加数模转换芯片),所以先用Arduino来实验。
Arduino代码
根据电路图,把Arduino和传感器连接起来:
1.Sharppin1(V-LED)=>5V串联1个150欧姆的电阻(最好在电阻一侧和GND之间再串联一个220uf的电容)
2.Sharppin2(LED-GND)=>GND
3.Sharppin3(LED)=>ArduinoPIN2(开关LED)
4.Sharppin4(S-GND)=>GND
5.Sharppin5(Vo)=>ArduinoA0pin(空气质量数据通过电压模拟信号输出)
6.Sharppin6(Vcc)=>5V
1./*
2.InterfacetoSharpGP2Y1010AU0FParticleSensor
3.ProgrambyChristopherNafis
4.WrittenApril2012
5.
6.
7.
8.
9.Sharppin1(V-LED) =>5V(connectedto150ohmresister)
10.Sharppin2(LED-GND)=>ArduinoGNDpin
11.Sharppin3(LED) =>Arduinopin2
12.Sharppin4(S-GND) =>ArduinoGNDpin
13.Sharppin5(Vo) =>ArduinoA0pin
14.Sharppin6(Vcc) =>5V
15.*/
16.#include
17.#include
18.
19.intdustPin=0;
20.intledPower=2;
21.intdelayTime=280;
22.intdelayTime2=40;
23.floatoffTime=9680;
24.
25.intdustVal=0;
26.inti=0;
27.floatppm=0;
28.char s[32];
29.floatvoltage=0;
30.floatdustdensity=0;
31.floatppmpercf=0;
32.
33.voidsetup(){
34. Serial.begin(9600);
35. pinMode(ledPower,OUTPUT);
36.
37. //givetheethernetmoduletimetobootup:
38. delay(1000);
39.
40. i=0;
41. ppm=0;
42.}
43.
44.voidloop(){
45. i=i+1;
46. digitalWrite(ledPower,LOW);//powerontheLED
47. delayMicroseconds(delayTime);
48. dustVal=analogRead(dustPin);//readthedustvalue
49. ppm=ppm+dustVal;
50. delayMicroseconds(delayTime2);
51. digitalWrite(ledPower,HIGH);//turntheLEDoff
52. delayMicroseconds(offTime);
53.
54. voltage=ppm/i*0.0049;
55. dustdensity=0.17*voltage-0.1;
56. ppmpercf=(voltage-0.0256)*120000;
57. if(ppmpercf<0)
58. ppmpercf=0;
59. if(dustdensity<0)
60. dustdensity=0;
61. if(dustdensity>0.5)
62. dustdensity=0.5;
63. StringdataString="";
64. dataString+=dtostrf(voltage,9,4,s);
65. dataString+=",";
66. dataString+=dtostrf(dustdensity,5,2,s);
67. dataString+=",";
68. dataString+=dtostrf(ppmpercf,8,0,s);
69. i=0;
70. ppm=0;
71. Serial.println(dataString);
72. delay(1000);
73.}
把传感器和Ardiuno连接好后,可以连续打印出传感器的输出电压值。
输出电压大小和灰尘含量的曲线入下图:
通过电压的波形还可以判断是烟还是尘呢…
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 使用 夏普 GP2Y1010AU0F 灰尘 传感器 检测 空气质量