电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

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

使用夏普GP2Y1010AU0F灰尘传感器检测空气质量_第1页
1/12
使用夏普GP2Y1010AU0F灰尘传感器检测空气质量_第2页
2/12
使用夏普GP2Y1010AU0F灰尘传感器检测空气质量_第3页
3/12
使用夏普GP2Y1010AU0F 灰尘传感器检测空气质量 夏普灰尘传感器价格较便宜,能检测出室内空气中的灰尘和烟尘含量. 检测原理 其原理如下图,传感器中心有个洞可以让空气自由流过,定向发射LED 光,通过检测经过空气中灰尘折射过后的光线来判断灰尘的含量。 电路图 因为数据是通过pin 5 的电压模拟信号输出的,而树莓派的引脚不支持模拟信号直接读取(需要增加数模转换芯片),所以先用Ardu ino 来实验。 Ardu ino 代码 根据电路图, 把 Arduino 和传感器连接起来: 1. Sharp pin 1 (V-LED) => 5V 串联 1 个 150 欧姆的电阻(最好在电阻一侧和 GND 之间再串联一个220uf 的电容) 2. Sharp pin 2 (LED-GND) => GND 3. Sharp pin 3 (LED) => Arduino PIN 2 (开关 LED) 4. Sharp pin 4 (S-GND) => GND 5. Sharp pin 5 (Vo) => Arduino A0 pin (空气质量数据通过电压模拟信号输出) 6. Sharp pin 6 (Vcc) => 5V 1. /* 2. Interface to Sharp GP2Y1010AU0F Particle Sensor 3. Program by Christopher Nafis 4. Written April 2012 5. 6. http://pic.lshou.com/pic/www.sparkfun.com/datasheets/Sensors/gp2y1010au_e.pdf 7. http://pic.lshou.com/pic/sensorapp.net/?p=479 8. 9. Sharp pin 1 (V-LED) => 5V (connected to 150ohm resister) 10. 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 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. // give the ethernet module time to boot up: 38. delay(1000); 39. 40. i=0; 41. ppm=0; 42. } 43. 44. voidloop(){ 45. i=i+1; 46. digitalWrite(ledPower,LOW);// power on the LED 47. delayMicroseconds(delayTime); 48. dustVal=analogRead(dustPin);// read the dust value 49. ppm=ppm+dustVal; 50. delayMicroseconds(delayTime2); 51. digitalWrite(ledPower,HIGH);// turn the LED off 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. } 把传感器和Ardiu no 连接好后,可以连续打印出传感器的输出电压值。输出电压大小和灰尘含量的曲线入下图: 通过电压的波形还可以判断是烟还是尘呢…

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

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

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部