MQ-135 Air Quality Gas Smoke Detection Sensor with Arduino Leave a comment

The MQ-135 is a popular gas sensor used for detecting a variety of gases including ammonia (NH3), nitrogen oxides (NOx), alcohol, benzene, smoke, and carbon dioxide (CO2). It is widely used in air quality monitoring applications due to its broad detection range and sensitivity to several gases. Here’s an overview of the MQ-135 sensor:


  1. High Sensitivity: The sensor is highly sensitive to ammonia, NOx, alcohol, benzene, smoke, and CO2.
  2. Wide Detection Range: It can detect concentrations from 10 ppm (parts per million) to 1000 ppm.
  3. Fast Response and Recovery: The sensor has a quick response time and can recover quickly after exposure to target gases.
  4. Analog Output: The MQ-135 provides an analog output proportional to the concentration of the detected gas.


  • Operating Voltage: 5V
  • Load Resistance: Adjustable
  • Heater Consumption: <800 mW
  • Sensing Resistance: 10 kΩ – 60 kΩ (in clean air)
  • Preheat Time: 20 seconds
  • Operating Temperature: -10°C to 50°C
  • Humidity: 95% RH

Pin Configuration

  • VCC: Power supply pin (5V)
  • GND: Ground pin
  • DO: Digital output pin
  • AO: Analog output pin


  • Air quality monitoring
  • Gas leak detection systems
  • Industrial safety systems
  • Portable air quality meters

How to Use the MQ-135 Sensor

  1. Wiring: Connect the VCC to a 5V power supply, GND to ground, AO to an analog input pin of a microcontroller, and DO to a digital input pin if digital readout is needed.
  2. Calibration: It is crucial to calibrate the sensor in a clean-air environment to establish a baseline resistance. This allows for accurate readings.
  3. Reading Data: The sensor provides an analog voltage output that varies with the concentration of gases. This output can be read using an ADC (Analog-to-Digital Converter) on a microcontroller like Arduino.
  4. Interpreting Readings: Convert the analog value to a gas concentration using the sensor’s datasheet and the specific calibration curve provided.
* Company Name:LK Tronics
* Author: Research & Development Department
* Date: 2023/03/10
* All rights reserved. No part of this code may be reproduced, distributed,
* or transmitted in any form or by any means, including photocopying, recording,
* or other electronic or mechanical methods, without the prior written permission
* of LK Tronics, except in the case of brief quotations embodied in
* critical reviews and certain other noncommercial uses permitted by copyright law.

const int analogPin = A0;  // Analog input pin that the sensor is attached to
int sensorValue = 0;       // Variable to store the value coming from the sensor

void setup() {
  Serial.begin(9600);      // Initialize serial communication at 9600 bits per second

void loop() {
  sensorValue = analogRead(analogPin);  // Read the analog value from the sensor
  Serial.print("Gas Concentration: ");
  Serial.println(sensorValue);          // Print the value to the serial monitor
  delay(1000);                          // Wait for 1 second before the next reading


  • Environmental Factors: Temperature and humidity can affect sensor readings, so it’s important to consider these factors in the application.
  • Interference: The sensor can detect multiple gases, which might lead to interference and affect the accuracy for a specific gas detection.

The MQ-135 is a versatile and cost-effective solution for detecting a variety of gases, making it ideal for environmental monitoring and safety applications. Proper calibration and understanding of its characteristics are crucial for accurate measurements.

Leave a Reply