Gas & Air Quality
Interfacing MQ 2 Gas & Air Quality with Arduino Uno
What is the MQ 2?
MQ 2 practical reference
A widely used analog gas sensor tuned for detecting LPG, smoke, and combustible gases in DIY safety and air-quality projects.
Key specifications
- Sensing element: SnO2 (tin dioxide) semiconductor — resistance drops in the presence of combustible gases
- Operating voltage: 5 V DC (heater and sensing circuit both run continuously on 5V, no duty-cycle required)
- Detection range: 300-10,000 ppm — LPG, propane, hydrogen, methane, and smoke
- Preheat time: Usable within ~20s of power-up; full baseline stabilization takes 24-48 hours of burn-in
- Current draw: ~150 mA, dominated by the heating element running continuously
- Output: Analog voltage (AOUT) proportional to gas concentration, plus a threshold digital output (DOUT) via onboard comparator
- Interface: Analog (AOUT) — requires an ADC and a datasheet Rs/Ro curve to convert to ppm; DOUT is a simple threshold trigger
Pinout and connection notes
Heater runs constantly at 5V — unlike the MQ-7/MQ-9, the MQ-2 doesn't need a duty-cycled heating voltage; a plain, constant 5V supply is correct per its datasheet. Just budget for the ~150mA continuous draw, which is easy to underestimate if your power rail is shared with other sensors.
AOUT is a raw voltage, not ppm — converting a reading to an actual ppm figure needs the Rs/Ro resistance ratio and the datasheet's gas-response curve, plus a clean-air calibration step to establish your specific sensor's Ro baseline. Don't treat raw analogRead() values as calibrated gas concentrations.
DOUT threshold needs manual calibration — the onboard potentiometer sets the trip point for DOUT and is not accurate out of the box; adjust it in known clean air before trusting it as an alarm trigger.
Don't touch the sensing element while powered — the metal mesh cap covers an actively heated element; it gets warm during normal operation.
Expect drift and burn-in behavior — readings during the first uses after unboxing will be noisier and less accurate than after ~24-48 hours of cumulative on-time; don't calibrate against a brand-new, un-burned-in sensor.
- VCC: Power, 5V DC — also powers the internal heating element continuously
- GND: Ground
- AOUT: Analog voltage output, proportional to gas concentration — read with an ADC, not a direct ppm value
- DOUT: Digital threshold output — trips based on the onboard comparator, threshold set by the potentiometer on the module
Integration checklist
- Confirm the exact part number and breakout-board revision.
- Verify supply voltage, current demand, logic levels, and signal direction against the datasheet.
- Check controller pin assignments and bus address or interface mode against the example code.
- Power up with external loads disconnected, then test signals before full integration.
- If readings or communication fail, check power and ground first, then pin mapping, interface settings, and library initialization.
Troubleshooting and reproducibility
Record the board used, wiring, library/version, supply arrangement, and measured behavior. Use the selected board-specific wiring example as the source of truth. Never assume visually similar modules share identical voltage tolerance or pin order.
Setting Up MQ 2 with Arduino Uno
Wiring
| Component pin | Arduino Uno pin | Note |
|---|---|---|
| VCC | 5V | |
| GND | GND | |
| AOUT | A0 | Analog voltage output — rises with detected gas concentration |
| DOUT | D2 (optional) | Digital threshold trigger; trip point set by the onboard potentiometer. Leave unconnected if you only need the analog reading. |
Swipe sideways to see every column →
- MQ-2 outputs a relative signal, not calibrated ppm — treat a higher voltage as "more gas," not an exact concentration, unless you run a full Rs/Ro calibration against clean air per the datasheet.
- Give it at least 20-30s after power-up before trusting a reading, and expect the baseline to keep drifting for the first 24-48 hours of total run time as the sensing element burns in.
- This is a hobbyist gas sensor, not a certified safety device — don't rely on it as your only smoke or LPG alarm.
Related Components
Related Guides & Projects
Arduino Uno R4 Minima Pinout: Every GPIO, ADC, DAC, and Op-Amp Pin Explained
A complete Arduino Uno R4 Minima pinout reference — digital I/O, ADC, DAC, op-amp, CAN, dual UART, and exactly what it leaves out compared to the WiFi variant.
Mastering PWM on Arduino: Dimming LEDs and Controlling Motors
Understand what PWM actually is on Arduino, dim an LED smoothly, and safely control a DC motor's speed with a driver chip -- plus the mistakes (like wiring a motor straight to a pin) that damage boards.
4-Digit 7-Segment Counter with TM1637 & Arduino
Drive a TM1637-based 4-digit 7-segment display with Arduino Uno to show a real-time up/down counter, elapsed timer, and scrolling text. Covers library setup, brightness control, and custom segment mapping.
Arduino Uno R4 Minima vs WiFi: Which One Should You Choose?
Same processor, same memory, different price. Here's what the WiFi variant's extra hardware actually gets you, and when the Minima is the smarter buy.