

The PPD42 is a particulate matter sensor designed to detect airborne particles, such as dust, pollen, and smoke. It uses a laser-based detection method to measure the concentration of particulate matter (PM) in the air. This sensor is widely used in air quality monitoring systems, environmental assessments, and HVAC (Heating, Ventilation, and Air Conditioning) applications. Its ability to provide real-time data makes it an essential component for projects requiring accurate air quality measurements.








The PPD42 sensor is compact and easy to integrate into various systems. Below are its key technical details:
| Parameter | Value |
|---|---|
| Operating Voltage | 5V DC |
| Operating Current | 90 mA (typical) |
| Particle Detection Range | 1 µm to 10 µm |
| Output Signal | PWM (Pulse Width Modulation) |
| Response Time | < 10 seconds |
| Operating Temperature | -10°C to 65°C |
| Dimensions | 59 mm x 45 mm x 22 mm |
The PPD42 has a simple pinout for easy integration. Below is the pin configuration:
| Pin Name | Description |
|---|---|
| VCC | Power supply input (5V DC) |
| GND | Ground |
| IOUT | PWM output signal for particle data |
VCC pin to a 5V DC power source and the GND pin to ground.IOUT pin provides a PWM signal that corresponds to the concentration of particulate matter in the air. This signal can be read using a microcontroller or an ADC (Analog-to-Digital Converter).Below is an example of how to connect and read data from the PPD42 using an Arduino UNO:
VCC pin of the PPD42 to the 5V pin on the Arduino.GND pin of the PPD42 to the GND pin on the Arduino.IOUT pin of the PPD42 to digital pin 2 on the Arduino.// PPD42 Particulate Matter Sensor Example
// Reads the PWM signal from the sensor and calculates the duty cycle
// to estimate the concentration of particulate matter.
const int sensorPin = 2; // Pin connected to the IOUT pin of the PPD42
unsigned long lowPulseDuration = 0;
unsigned long highPulseDuration = 0;
void setup() {
pinMode(sensorPin, INPUT);
Serial.begin(9600); // Initialize serial communication
}
void loop() {
// Measure the duration of the LOW pulse
lowPulseDuration = pulseIn(sensorPin, LOW);
// Measure the duration of the HIGH pulse
highPulseDuration = pulseIn(sensorPin, HIGH);
// Calculate the total period of the PWM signal
unsigned long totalDuration = lowPulseDuration + highPulseDuration;
// Calculate the duty cycle (percentage of time the signal is LOW)
float dutyCycle = (lowPulseDuration / (float)totalDuration) * 100.0;
// Print the duty cycle to the Serial Monitor
Serial.print("Duty Cycle (%): ");
Serial.println(dutyCycle);
// Add a delay for stability
delay(1000);
}
No Output Signal:
Inconsistent Readings:
High Noise in Output:
Q1: Can the PPD42 detect particles smaller than 1 µm?
A1: No, the PPD42 is designed to detect particles in the range of 1 µm to 10 µm. For smaller particles, consider using a different sensor.
Q2: How often should the sensor be cleaned?
A2: Cleaning frequency depends on the environment. In dusty areas, clean the sensor every few months using compressed air to remove debris.
Q3: Can the PPD42 be used outdoors?
A3: While the sensor can operate outdoors, it should be protected from rain, extreme humidity, and direct sunlight to ensure accurate readings and longevity.
Q4: Is the PPD42 compatible with 3.3V systems?
A4: No, the PPD42 requires a 5V power supply. Use a level shifter if interfacing with a 3.3V microcontroller.