Home Code Arduino Dust sensor example

Arduino Dust sensor example

by shedboy71

Sharp’s GP2Y1010AU0F is an optical air quality sensor it is designed to sense dust particles. 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. It is especially effective in detecting very fine particles like cigarette smoke, and is commonly used in air purifier systems.


To interface with this sensor, you need to connect to its 6-pin, 1.5mm pitch connector by using mating connector.


  • Low Current Consumption (MAX: 20mA)
  • Typical Operating Voltage: 4.5V to 5.5V (MAX: 7V)
  • The presence of dust can be detected by the photometry of only one pulse
  • Enable to distinguish smoke from house dust
  • Dimensions: 1.81 x 1.18 x 0.69” (46.0 x 30.0 x 17.6mm)


gp2y1010au0f diagram





The following connections are used

Sharp pin 1 (V-LED)          =  5V this is connected via a 150 ohm resistor
Sharp pin 2 (LED-GND)     =  Arduino GND pin
Sharp pin 3 (LED)             = Arduino pin D2
Sharp pin 4 (S-GND)         = Arduino GND pin
Sharp pin 5 (Vo)               =  Arduino A0 pin
Sharp pin 6 (Vcc)              =  5V

Refer to this layout diagram


Resister, R1=150Ω and capacitor, C1=220uF mentioned above is required for pulse drive of the LED of GP2Y1010AU0F. Please use the ones with the above mentioned constants. Without these components, the device does not work.



int dustPin = 0; // dust sensor - Arduino A0 pin
int ledPin = 2;    
float voltsMeasured = 0;
float calcVoltage = 0;
float dustDensity = 0;
void setup()
void loop()
  digitalWrite(ledPin,LOW); // power on the LED
  voltsMeasured = analogRead(dustPin); // read the dust value
  digitalWrite(ledPin,HIGH); // turn the LED off
  //measure your 5v and change below
  calcVoltage = voltsMeasured * (5.0 / 1024.0);
  dustDensity = 0.17 * calcVoltage - 0.1;
  Serial.println("GP2Y1010AU0F readings"); 
  Serial.print("Raw Signal Value = ");
  Serial.print("Voltage = ");
  Serial.print("Dust Density = ");
  Serial.println(dustDensity); // mg/m3



This is the output that I saw via the serial monitor

GP2Y1010AU0F readings
Raw Signal Value = 6.00
Voltage = 0.03
Dust Density = -0.10

GP2Y1010AU0F readings
Raw Signal Value = 176.00
Voltage = 0.86
Dust Density = 0.05

GP2Y1010AU0F readings
Raw Signal Value = 97.00
Voltage = 0.47
Dust Density = -0.02

GP2Y1010AU0F readings
Raw Signal Value = 7.00
Voltage = 0.03
Dust Density = -0.09



DAtasheet – http://www.sharp-world.com/products/device/lineup/data/pdf/datasheet/gp2y1010au_appl_e.pdf


GP2Y1010AU0F Compact Optical Dust Sensor Smoke Particle Sensor With Cable


You may also like

Leave a Comment

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More