LamaPLC: MQ Winsen Gas-sensors

Winsen's MQ series gas sensors are low-cost, semiconductor-type (chemiresistive) sensors designed to detect a wide range of gases, including flammable gases, alcohol, and smoke. Each model is tailored to detect specific gases or a range of gases.

  • Operating Principle: The sensors use a sensitive material (typically SnO2 semiconductor) and a heating element. The sensor's conductivity varies with air-gas concentration, enabling measurement using a simple voltage divider.
  • Voltage: They operate on a standard 5-volt DC power supply.
  • Low Cost: A major advantage is their affordability, making them popular for a wide variety of civil and industrial applications, including smart homes and IoT projects.
  • “Burn-in” Time: A “burn-in” period of 12 to 24 hours is often recommended to improve measurement accuracy.
Gas sensor
smoke
LPG (liquefied petroleum gas)
propane
hydrogen
Winsen
MQ-2 MQ-2
Flammable gas concentracion: 300 .. 10'000ppm

Heater Resistance; RH: 29Ω ±3Ω(room tem.)
Heater consumption; PH: ≤950mW
Sensitivity;S: Ro(in air) / Rs (2000 ppm C3H8) ≥ 5
Output Voltage;Vs: 2.5V~4.0V(in 2000 ppm C3H8
Concentration Slope;α: ≤0.6 (R3000 ppm / R1000 ppm C₃H₈)
Gas sensor
alcohol (C₂H₅OH)

Small sensitivy:
Benzine gas
Winsen
MQ-3 MQ-3
Detecting concentration scope:0.05 mg / 10 mg/L Alcohol

Sensing Resistance: 1 MΩ - 8 MΩ (0.4 mg/L alcohol)
Gas sensor
Methane CH₄
Natural gas
LNG


Small sensitivy:
Alcohol
Smoke
Winsen
MQ-4 MQ-4
Detecting concentration scope:200-10'000ppm CH₄, natural gas

Sensing Resistance: 10KΩ- 60KΩ (1000ppm CH4)
Gas sensor
LPG
Iso-butane
Propane


Small sensitivy:
Alcohol
Smoke
Winsen
MQ-5 MQ-5
Detecting concentration scope: 200-10,000ppm LPG, LNG, Natural gas, Iso-butane, Propane, Town gas

Sensing Resistance: 10KΩ- 60KΩ (5000 ppm methane)
Gas sensor
Town gas
Natural gas
LPG
LNG
Iso-butane
Propane


Small sensitivy:
Alcohol
Smoke
Winsen
MQ-6 MQ-6
Detecting concentration scope:200-10'000ppm LPG ,iso-butane, propane, LNG

Sensing Resistance: 10KΩ- 60KΩ (10'00ppm LPG)
Gas sensor
CO
Winsen
MQ-7 MQ-7
Detecting concentration scope: over 300 ppm CO (Carbon Monoxide)

Sensing Resistance: 2KΩ- 20KΩ (100 ppm CO)
Gas sensor
H2

Small sensitivy:
Alcohol
LPG
cooking fumes
Winsen
MQ-8 MQ-8
Detecting concentration scope:100-10000ppm Hydrogen (H₂)

Sensing Resistance: 10KΩ- 60KΩ (1000 ppm H2)
Gas sensor
CO
Methane CH₄
LPG
Winsen
MQ-9 MQ-9
Detecting range:
20 ppm .. 2000 ppm carbon monoxide
500 ppm .. 10'000 ppm methane CH₄
500 ppm .. 10'000 ppm LPG

Sensing Resistance: 2KΩ- 20KΩ (100 ppm CH4)
Gas sensor
ozone
Winsen
MQ-131 MQ-135
-
Gas sensor
NOx
Ammonia NH₃
alcohol
Benzene
smoke
CO₂
Winsen
MQ-135 MQ-135
Detecting range:
10 ppm .. 300 ppm Ammonia NH₃
10 ppm .. 1000 ppm Benzene
10 ppm .. 300 ppm Alcohol

Sensing Resistance: 30KΩ- 200KΩ (100 ppm Ammonia NH₃)
Gas sensor
Ammonia NH₃
Winsen
MQ-137 MQ-135
Detecting range:
5 ppm .. 500 ppm Ammonia NH₃

If you'd like to support the development of the site with the price of a coffee — or a few — please do so here.

Here's a handy tip: you can quickly save this page as a PDF by clicking “export to PDF” in the menu on the right side of the screen.

2026/02/14 22:38

Arduino

Interfacing the MQ-135 air quality sensor with an Arduino can be done either by reading raw analog signals or by using a dedicated library to obtain calibrated PPM (parts per million) readings.

Arduino wiring

MQ-135PinArduino PinDescription
VCC5VPower supply (the sensor has a built-in heater)
GNDGNDGround
AOUT / AOA0Analog output (voltage level based on gas concentration)
DOUT / DOD2 (Optional)Digital output (goes high/low based on threshold)

Arduino code

This code provides a raw reading from 0 to 1023, which is useful for basic threshold detection (e.g., triggering a fan or an alarm).

int sensorPin = A0; // Select the input pin for MQ-135
 
void setup() {
  Serial.begin(9600); // Initialize serial communication
}
 
void loop() {
  int sensorValue = analogRead(sensorPin); // Read analog value (0-1023)
  Serial.print("Raw Air Quality Value: ");
  Serial.println(sensorValue);
  delay(1000); // Wait 1 second for next reading
}

This page has been accessed for: Today: 1, Until now: 23