查看夏普 GP2Y1010AU0F 灰尘传感器的源代码
←
夏普 GP2Y1010AU0F 灰尘传感器
跳转到:
导航
,
搜索
因为以下原因,你没有权限编辑本页:
您刚才请求的操作只有这个用户组中的用户才能使用:
用户
您可以查看并复制此页面的源代码:
== 概述 == GP2Y1010 Datasheet: https://www.sparkfun.com/datasheets/Sensors/gp2y1010au_e.pdf [http://wiki.jackslab.org/images/GP2Y1010AU_%E8%AE%BE%E8%AE%A1%E5%8F%82%E8%80%83%E6%8C%87%E5%8D%97%E5%8F%8A%E5%8E%9F%E7%90%86.pdf 夏普 GP2Y1010AU 设计参考] <br><br> == PIN == [[文件:Sharp.gy1010.pin.jpg]] <pre> 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 </pre> <br><br> == 电路 == [[文件:Sharp.gy1010.circuit.gif]] <br><br> == 程序== <source lang=cpp> /* Interface to Sharp GP2Y1010AU0F Particle Sensor Program by Christopher Nafis Written April 2012 http://www.sparkfun.com/datasheets/Sensors/gp2y1010au_e.pdf http://sensorapp.net/?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 4 Sharp pin 4 (S-GND) => Arduino GND pin Sharp pin 5 (Vo) => Arduino A4 pin Sharp pin 6 (Vcc) => 5V */ #include <stdlib.h> long lastConnectionTime = 0; // last time you update to the server, in milliseconds const int postingInterval = 10000; // delay between two updates int dustPin = 4; int ledPower = 4; int delayTime = 280; int delayTime2 = 40; float offTime = 9680; int dustVal = 0; int i = 0; float ppm = 0; char s[32]; float voltage = 0; float dustdensity = 0; float ppmpercf = 0; void setup(){ Serial.begin(9600); pinMode(ledPower,OUTPUT); delay(1000); i = 0; ppm =0; } void loop(){ 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); if((millis() - lastConnectionTime > postingInterval)) { voltage = ppm/i*0.0049; dustdensity = 0.17*voltage-0.1; ppmpercf = (voltage-0.0256)*120000; if (ppmpercf < 0) ppmpercf = 0; if (dustdensity < 0 ) dustdensity = 0; if (dustdensity > 0.5) dustdensity = 0.5; String dataString = ""; 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); lastConnectionTime = millis(); } delay(3000); } </source> <br><br> == 简化版程序 == <source lang=cpp> int dustPin=4; int dustVal=0; int ledPower=4; int delayTime=280; int delayTime2=40; float offTime=9680; void setup(){ Serial.begin(9600); pinMode(ledPower,OUTPUT); } void loop(){ // ledPower is any digital pin on the arduino connected to Pin 3 on the sensor digitalWrite(ledPower,LOW); // power on the LED delayMicroseconds(delayTime); dustVal=analogRead(dustPin); // read the dust value via pin 5 on the sensor delayMicroseconds(delayTime2); digitalWrite(ledPower,HIGH); // turn the LED off delayMicroseconds(offTime); delay(3000); Serial.println(dustVal); } </source> <br><br> == 值判读 == > https://www.airnow.gov/index.cfm?action=airnow.calculator Air Quality Chart - Small Count Reading (0.5 micron)+ <pre> 3000 + = VERY POOR 1050-3000 = POOR 300-1050 = FAIR 150-300 = GOOD 75-150 = VERY GOOD 0-75 = EXCELLENT </pre> <br><br> == 参考 == * http://www.howmuchsnow.com/arduino/airquality/ * http://sensorapp.net/sharp-dust-sensor-and-arduino/ * https://www.sparkfun.com/datasheets/Sensors/gp2y1010au_e.pdf <br><br> <br><br> <br><br> <br><br> <br><br> <br><br> <br><br> <br><br> <br><br> <br><br> <br><br> <br><br>
返回到
夏普 GP2Y1010AU0F 灰尘传感器
。
个人工具
登录
名字空间
页面
讨论
变换
查看
阅读
查看源代码
查看历史
操作
搜索
导航
首页
社区专页
新闻动态
最近更改
随机页面
帮助
工具箱
链入页面
相关更改
特殊页面