In this tutorial we will build a gaz detector using an Arduino Uno and MQ5 Gas sensor.The MQ5 gas sensor is a device designed to detect the presence of gases such as LPG, natural gas, and coal gas in the air. It operates on the principle of changes in conductivity of a tin dioxide semiconductor material when exposed to different gases. The sensor has an integrated heating element to maintain a specific operating temperature. By measuring the resistance changes in the sensing element, the sensor provides an indication of gas concentration. Commonly used in gas leak detectors and industrial applications, the MQ5 sensor requires calibration for accurate readings and is often employed in conjunction with microcontrollers in electronic projects.

Step 1: Component  You Need:

Arduino Uno

MQ5 Gaz Sensor



Active Buzzer


Jumper wires male-male,Jumper wires female-male

Step 2: Features of  MQ5 sensor:

The MQ5 gas sensor comes with several features that make it suitable for gas detection applications. Here are the key features of the MQ5 sensor

Gas Sensitivity:

The MQ5 sensor is specifically sensitive to gases such as LPG (liquefied petroleum gas), natural gas, and coal gas. It can detect changes in the concentration of these gases in the surrounding environment.

Semiconductor Material:

The sensor utilizes a tin dioxide (SnO2) semiconductor material in its sensing element. The conductivity of this material changes in the presence of different gases, forming the basis for gas detection.

Heating Element:

Integrated heating element ensures that the sensor operates at a consistent temperature, allowing for stable and reliable performance. This heating is necessary for the sensor to function effectively.

Analog Output:

The sensor typically provides an analog voltage or current output proportional to the gas concentration. This analog signal can be interfaced with microcontrollers or other electronics for further processing and decision-making.

Fast Response Time:

The MQ5 sensor is known for its relatively fast response time to changes in gas concentration. This feature is crucial for timely detection of gas leaks or changes in the environment.

Wide Detection Range:

The sensor has a broad detection range, making it versatile for applications where different concentrations of gases need to be monitored.

Low Cost:

MQ5 sensors are generally affordable, making them popular for both hobbyist and industrial applications where cost-effectiveness is a consideration.

Simple Interface:

The sensor is designed for easy integration into electronic circuits, making it suitable for use in various projects and devices. It often interfaces with microcontrollers like Arduino for data processing.

Robust Construction:

The sensor is typically housed in a durable casing, providing protection to the internal components. This construction allows for reliable operation in different environmental conditions.


MQ5 sensors find applications in a variety of settings, including industrial environments, homes, and electronic projects. They are commonly used in gas detectors, safety systems, and automation projects.

Requires Calibration:

Calibration is necessary to ensure accurate and reliable readings. Users need to calibrate the sensor to the specific gas they want to detect, and periodic recalibration may be required for consistent performance.

Remember that the specific details of the MQ5 sensor's features can vary slightly depending on the manufacturer and model. Always refer to the datasheet provided by the manufacturer for detailed information and guidelines for use.

Step 3:Shematics

Step 4: Program Arduino

Please follow the program step by step and upload it to your Arduino Board:


#include <LiquidCrystal_I2C.h> // library for i2c lcd

LiquidCrystal_I2C lcd(0x27, 16, 2);//set the LCD address to 0x27 for a 16 chars and 2 line display

#define ledPinRED 7 //  define pin 7 for RED LED

#define ledPinGREEN 8 // define pin 8 for GREEN LED

#define buzzerPin 6 //  define pin 6 for Active Buzzer

#define sensor  A0 //  define pin A0 for MQ5-GAZ Sensor

int gas_value;     //create integer variable for gas_value to stock data

void setup(){

  pinMode(sensor, INPUT);//Initialise the analog pin as input

  pinMode(ledPinRED, OUTPUT);//Initialise the Digital pin as Output

  pinMode(ledPinGREEN, OUTPUT);//Initialise the Digital pin as Output

   pinMode(buzzerPin, OUTPUT);//Initialise the Digital pin as Output

  Serial.begin(9600);// initialize Serial communication

  lcd.init(); // initialize the lcd

  lcd.backlight();// turn on backlight.


void loop(){

  gas_value = analogRead(sensor);//Read the value of gas_value

  Serial.print("Sensor Value:");//print the text sensor value

  Serial.println(gas_value);//Read the value of gas_value

  if (gas_value > 650) {//if the value is superior than 650 that means gaz is detected

  digitalWrite(ledPinRED, HIGH);//The Red Led  Turn on

  digitalWrite(ledPinGREEN, LOW);//The Green Led Turn off

  digitalWrite(buzzerPin, HIGH);//The Active Buzzer Turn On

   lcd.setCursor(0, 0);         // move cursor to   (0, 0)

  lcd.print("GAZ SENSOR:");        // print message at (0, 0)

  lcd.setCursor(0, 1);         // move cursor to   (0, 1)

  lcd.print("DETECT DANGER !!!"); // print message at (0, 1)


  else{ //else means the value is inferior than 650 that means there is no gaz

  digitalWrite(ledPinRED, LOW);//The Red Led  Turn off

  digitalWrite(ledPinGREEN, HIGH);//The Green Led Turn on

  digitalWrite(buzzerPin, LOW);//The Active Buzzer Turn off

  lcd.setCursor(0, 0);         // move cursor to   (0, 0)

  lcd.print("GAZ SENSOR:");    // print message at (0, 0)

  lcd.setCursor(0, 1);        // move cursor to   (0, 1)

  lcd.print("DETECT NOTHING:)"); // print message at (0, 1)