Product Specifications


Type: Sensor
Architecture: For Arduino
Output Signal: Digital (Negative Logic and PWM)
Detectable Range of Concentration: 0 ~ 280000 pcs/litre (0 ~ 8000 pcs/0.01cf CF = 283 ml)
Detectable particle diameter: > 1µm
Operating Humidity Range: 95% relative humidity or less
Operating Temperature: 0°C ~ 45°C
Stabilisation time: 1 minute after powered (3 minutes for the first time)


Operating Voltage: +4.75 ~ +5.75 volts
Operating Current: 90 mA
Output Signal Voltage: High: > +4 volts - +4.5 volts (For newer models) / Low: < 0.7 volts

Weight and Size Dimensions

Product Weight: 25g
Wire Length: 21 cm
Product Size (L x W x H): 58.7 x 46 x 19 cm


Black Wire - GND (-)
Red Wire - VCC (+)
Yellow Wire - Signal

Product Review

This one-of-a-kind sensor provides an excellent alternative to many sensors involving air quality detection, because it includes functions and attributes such as:
1. The high sensitivity towards various dust conditions, which is followed by its quick response time for the sensor's serial communication to a microcontroller.
2. The technology involved in this sensor, as this sensor includes: an Infrared LED, a set of lens, a photodiode detector and electromagnetic shielding.
3. The compactness and size of this sensor, especially for its dust sensing function. This sensor could easily fit into an air quality monitor box or any other DIY casing.
4. The simple software involved with coding this sensor as it is simple, with sampling included, to convert raw values into a specific unit of measurement (pcs/0.01cf).
5. The uncomplicated hardware framework to prepare this sensor for use, because of the three wires to a microcontroller (VCC, GND and Signal). This is definitely a starting sensor for a beginner.
6. The many resources involved when purchasing this sensor, as the source code and any additional information (Precautions, Project Ideas, Readings vs Time, etc.) are all given in the Wiki page.

Arduino Grove - Dust Sensor (PPD42NS) Sample Code

int pin = 8;
unsigned long duration;
unsigned long starttime;
unsigned long sampletime_ms = 2000;//sampe 30s ;
unsigned long lowpulseoccupancy = 0;
float ratio = 0;
float concentration = 0;
void setup() {
  starttime = millis();//get the current time;
void loop() {
  duration = pulseIn(pin, LOW);
  lowpulseoccupancy = lowpulseoccupancy+duration;
  if ((millis()-starttime) >= sampletime_ms)//if the sampel time = = 30s
    ratio = lowpulseoccupancy/(sampletime_ms*10.0);  // Integer percentage 0=>100
    concentration = 1.1*pow(ratio,3)-3.8*pow(ratio,2)+520*ratio+0.62; // using spec sheet curve
    Serial.print("Concentration = ");
    Serial.println(" pcs/0.01cf");
    lowpulseoccupancy = 0;
    starttime = millis();

Seeedstudio Product PagePictureCheck out the product here:

Sponsor Link: Reviews

It is a trustworthy website for ordering electronic components with cheap price and excellent quality.

Amazing opportunities

Also, be sure to check out PCBWay, a leading manufacturer and distributor in PCB design and manufacturing. They have amazing prices and excellent quality in their services, so don't miss out on them! Plus, PCBWay has an amazing website, online Gerber viewer function and a gift shop so make sure to check out their links below:

PCBWay Free Online Gerber Viewer Function:

PCBWay Gift Shop:

Be sure to check out the Arduino Grove - Dust Sensor (PPD42NS) Project by clicking here.

Enjoy! Contact us for any inquiries!