Sharp GP2Y10 空气质量传感器
目录
1 概述
2 规格描述
3 连接方式
4 样例代码
概述
The Sharp Optical Dust Sensor (GP2Y1010AU0F) is especially effective in detecting very fine particles like cigarette smoke, and is commonly used in air purifier systems.
An infrared emitting diode and a phototransistor are diagonally arranged into this device, to allow it to detect the reflected light of dust in air.
The sensor has a very low current consumption (20mA max, 11mA typical), and can be powered with up to 7VDC. The output of the sensor is an analog voltage proportional to the measured dust density, with a sensitivity of 0.5V/0.1mg/m3.
规格描述
工作电压: 5 ~ 7V
工作温度: -10 ~ 65摄氏度
最大电流: 20mA
连接方式
Vled
5V (150ohm resistor & 220uF capacitor)
LED-GND
GND
LED
Digital pin 2
S-GND
GND
Vo
Analog pin 0
Vcc
5V
样例代码
<source lang="cpp">
/*
Standalone Sketch to use with a Arduino UNO and a
Sharp Optical Dust Sensor GP2Y1010AU0F
/user define/
int voutPin = A0; //Connect Vo of dust sensor Vo to Arduino A0 pin
int ledPin = 2; //Connect LED(3pin) of dust sensor to Arduino D2 pin
/system define/
int samplingTime = 280;
int deltaTime = 40;
int sleepTime = 9680;
int voMeasured = 0;
float calcVoltage = 0;
float dustDensity = 0;
void setup(){
Serial.begin(9600);
pinMode(ledPin,OUTPUT);
void loop(){
digitalWrite(ledPin,LOW); // power on the LED
delayMicroseconds(samplingTime);
voMeasured = analogRead(voutPin); // read the dust value
delayMicroseconds(deltaTime);
digitalWrite(ledPin,HIGH); // turn the LED off
delayMicroseconds(sleepTime);
// 0 - 5V mapped to 0 - 1023 integer values
// recover voltage
calcVoltage = (float)voMeasured * (5.0 / 1024.0);
// linear eqaution taken from http://www.howmuchsnow.com/arduino/airquality/
// Chris Nafis (c) 2012
if ( calcVoltage >= 0.6 )
{
dustDensity = 0.17 * calcVoltage - 0.1;
}
else
{
dustDensity = 0;
}
Serial.print("Raw Signal Value (0-1023): ");
Serial.print(voMeasured);
Serial.print(" - Voltage: ");
Serial.print(calcVoltage);
Serial.print("V");
Serial.print(" - Dust Density: ");
if( calcVoltage > 3.5 ) { Serial.print(">"); // unit: mg/m3 }Serial.print(dustDensity);
Serial.println(" mg/m3");
delay(1000);
} </source>