---
# System prepended metadata

title: Which Arduino sensors can detect PPM?
tags: [Sensor]

---

Arduino-compatible sensors that can detect PPM (parts per million) values typically measure gases or chemical concentrations in air or liquid. Here's a list of commonly used PPM-detecting [sensors](https://www.ampheo.com/c/sensors) you can interface with [Arduino](https://www.ampheo.com/c/development-board-arduino), along with their applications:
![Measuring-CO2-Concentration-using-Arduino-and-MQ-135-Sensor](https://hackmd.io/_uploads/rJwb4oLExx.jpg)

 **Common Arduino Sensors for Detecting PPM**
![企业微信截图_20250623173509](https://hackmd.io/_uploads/ry4Jlj84xe.png)

 **Notable Digital (Calibrated) PPM Sensors**
These are more accurate than analog MQ sensors and often output calibrated PPM readings directly:

**1. MH-Z19B / MH-Z14A (CO₂ sensor)**
* Measures 400–5000 PPM CO₂
* UART or PWM output
* Ready-to-use and accurate for indoor air quality

**2. [SCD30](https://www.ampheo.com/product/scd30-26836534) / [SCD41](https://www.ampheo.com/search/SCD41) by Sensirion**
* Advanced CO₂, temperature, and [humidity sensor](https://www.onzuu.com/category/board-mount-humidity-sensors)
* I2C interface, 0–40,000 PPM range
* Accurate and factory-calibrated

 **Considerations When Using PPM Sensors with Arduino**
* Analog [sensors](https://www.ampheoelec.de/c/sensors) (MQ series) need calibration to get accurate PPM values.
* PPM readings are often non-linear — use datasheet curves or calibration gases.
* For precision, use digital sensors (MH-Z19, SCD30) with direct PPM output.
* Warm-up time for gas sensors: usually 30–60 seconds for stable readings.
* Add temperature/humidity compensation where needed.

 **Example: MQ-135 with Arduino (Air Quality)**
```
cpp

int sensorPin = A0;
void setup() {
  Serial.begin(9600);
}
void loop() {
  int analogValue = analogRead(sensorPin);
  float voltage = analogValue * (5.0 / 1023.0);
  Serial.print("Sensor voltage: ");
  Serial.println(voltage);
  delay(1000);
}
```
To convert to PPM, you must apply a calibration formula or use a lookup table based on the gas and MQ datasheet.