Close Menu
  • Articles
    • Learn Electronics
    • Product Review
    • Tech Articles
  • Electronics Circuits
    • 555 Timer Projects
    • Op-Amp Circuits
    • Power Electronics
  • Microcontrollers
    • Arduino Projects
    • STM32 Projects
    • AMB82-Mini IoT AI Camera
    • BLE Projects
  • IoT Projects
    • ESP8266 Projects
    • ESP32 Projects
    • ESP32 MicroPython
    • ESP32-CAM Projects
    • LoRa/LoRaWAN Projects
  • Raspberry Pi
    • Raspberry Pi Projects
    • Raspberry Pi Pico Projects
    • Raspberry Pi Pico W Projects
  • Electronics Calculator
Facebook X (Twitter) Instagram
  • About Us
  • Disclaimer
  • Privacy Policy
  • Contact Us
  • Advertise With Us
Facebook X (Twitter) Instagram Pinterest YouTube LinkedIn
How To Electronics
  • Articles
    • Learn Electronics
    • Product Review
    • Tech Articles
  • Electronics Circuits
    • 555 Timer Projects
    • Op-Amp Circuits
    • Power Electronics
  • Microcontrollers
    • Arduino Projects
    • STM32 Projects
    • AMB82-Mini IoT AI Camera
    • BLE Projects
  • IoT Projects
    • ESP8266 Projects
    • ESP32 Projects
    • ESP32 MicroPython
    • ESP32-CAM Projects
    • LoRa/LoRaWAN Projects
  • Raspberry Pi
    • Raspberry Pi Projects
    • Raspberry Pi Pico Projects
    • Raspberry Pi Pico W Projects
  • Electronics Calculator
How To Electronics
Home » Interfacing MiCS-5524 CO, Alcohol, VOC Gas Sensor with Arduino
Arduino Projects

Interfacing MiCS-5524 CO, Alcohol, VOC Gas Sensor with Arduino

Mamtaz AlamBy Mamtaz AlamUpdated:February 2, 20255 Mins Read
Share Facebook Twitter LinkedIn Telegram Reddit WhatsApp
Interfacing MiCS-5524 CO, Alcohol, VOC Gas Sensor with Arduino
Share
Facebook Twitter LinkedIn Pinterest Email Reddit Telegram WhatsApp

Overview

In this tutorial, we will be interfacing the MiCS-5524 CO, Alcohol, and VOC Gas Sensor Module with Arduino. The MiCS-5524 sensor uses MEMS technology to detect Gas concentration or gas leakage of CO, CH4, C2H5OH, C3H8, C4H10, H2, H2S, NH3, etc.

Earlier we used gas sensors like CCS811, SGP30, BME680, MQ-135, and PMS5003, etc to measure different gas concentrations, Volatile organic compounds & particulate matter concentrations. However one of the advantages of MiCS-5524 is that it can detect and measure the concentrations of potentially hazardous gases. Using the data, you can create a safety system.


Bill of Materials

Following are the components required for this tutorial.

S.N.ComponentsQuantityPurchase Link
1Arduino Nano Board1Amazon | AliExpress
2MiCS-5524 Sensor Module1Amazon | AliExpress
3Jumper Wires10Amazon | AliExpress
4Breadboard1Amazon | AliExpress




MiCS5524 CO, Alcohol and VOC Gas Sensor Module

The MiCS-5524 Gas Sensor Module is an advanced sensing device engineered to detect a range of gaseous substances in various environments.

MiCS-5524 MEMS Gas Sensor Module

At the core of this module is a highly sensitive metal oxide semiconductor (MOS) layer that is specifically designed to respond to gases such as carbon monoxide, alcohol, acetone, formaldehyde, and hydrogen. This sensitivity makes the MiCS-5524 a versatile tool in numerous safety-related and air quality monitoring applications.

The module’s compact size facilitates easy integration into different hardware configurations, making it ideal for both residential and industrial setups. Its low power requirements are an additional benefit, promoting prolonged operation which is crucial for continuous monitoring tasks.

Whether integrated into home safety alarms, incorporated into smart home systems, or used in industrial air quality management, the MiCS-5524 delivers reliable and accurate gas detection, making it an essential component in any project aimed at enhancing safety and monitoring air quality. Check MiCS-5524 Datasheet for more information.

Features & Specifications of MiCS5524

  • Operating Voltage: 4.9 to 5.1V DC
  • Power Dissipation: 0.45W
  • Output Type: Analog signal
  • Measuring Ranges:
    • Carbon Monoxide (CO): 1 – 1000 ppm
    • Ethanol (C2H5OH): 10 – 500 ppm
    • Hydrogen (H2): 1 – 1000 ppm
    • Ammonia (NH3): 1 – 500 ppm
    • Methane (CH4): Above 1000 ppm
  • Operating Conditions:
    • Temperature: -30 to 85°C
    • Humidity: 5 to 95% RH (non-condensing)
  • Storage Conditions:
    • Temperature: -40 to 85°C
  • Lifespan: Over 2 years in air
  • Physical Dimensions:
    • Circuit Board: 12mm x 16mm
    • Mounting Holes: Inner diameter 2mm, outer diameter 4mm
  • Weight: 7 grams



Pinout of MiCS5524

Here’s the pinout for the MiCS-5524 MEMS Gas Sensor Module.

Pin Name Description
5V Power supply input; connect to a 5V supply.
GND Ground pin; connect to the system ground.
A0 Analog Output; outputs a voltage proportional to detected gas concentrations.
EN Enable pin; use to activate (high) or deactivate (low) the sensor.

 


Interfacing MiCS-5524 MEMS Gas Sensor Module with Arduino

Now let us interface the MiCS-5524 CO, Alcohol & VOC Gas Sensor with Arduino Board. The following diagram shows how to interface the MiCS-5524 Gas Sensor Module with an Arduino.

Interfacing MiCS-5524 MEMS Gas Sensor Module with Arduino

  • Connect the 5V pin on the Arduino to the 5V pin on the MiCS-5524.
  • Connect from the GND (Ground) pin on the Arduino to the GND pin on the MiCS-5524.
  • Connect the MiCS-5524’s A0 pin to one of the Arduino’s analog input pins (A0).
  • Connect the EN (Enable) pin on the MiCS-5524 to a digital pin on the Arduino (D2).

MiCS-5524 Arduino Connection

This setup allows the Arduino to power the MiCS-5524 sensor, read its analog output, and control its operation via the EN pin.




Source Code/Program

The sensor uses MEMS technology to support gas concentration detection of CO, CH4, C2H5OH, C3H8, C4H10, H2, H2S and NH3. To read all these values, DFRobot has developed a library. First download the library and add it to the Arduino IDE.

Download: DFRobot MiCS-5524 Library

Copy the following code and past it on your Arduino IDE.

This Arduino code uses the DFRobot_MICS library to manage and read data from a MICS gas sensor module. It initializes the sensor, checks its power state, and waits for it to warm up. Once initialized, the code continuously measures and displays concentrations of various gases such as carbon monoxide, methane, ethanol, hydrogen, ammonia, and nitrogen dioxide on the serial monitor.

It also includes an option to put the sensor into sleep mode to conserve power after readings, though this feature is commented out by default.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include "DFRobot_MICS.h"
 
#define CALIBRATION_TIME   2    // Default calibration time is three minutes
#define ADC_PIN            A0   // Analog pin connected to the sensor's analog output
#define POWER_PIN          2    // Digital pin to power the sensor
 
DFRobot_MICS_ADC mics(ADC_PIN, POWER_PIN);
 
void setup()
{
  Serial.begin(115200);
  while (!Serial); // Wait for serial communication to initialize
  
  // Attempt to initialize the sensor
  while (!mics.begin()) {
    Serial.println("No devices found! Please check the connections.");
    delay(1000);
  }
  Serial.println("Device connected successfully!");
 
  // Check the current power state of the sensor
  uint8_t mode = mics.getPowerState();
  if (mode == SLEEP_MODE) {
    mics.wakeUpMode();
    Serial.println("Sensor woken up successfully!");
  } else {
    Serial.println("Sensor is already in wake-up mode.");
  }
 
  // Wait for the sensor to complete its warm-up time
  while (!mics.warmUpTime(CALIBRATION_TIME)) {
    Serial.println("Please wait until the warm-up time is over!");
    delay(1000);
  }
  Serial.println("Sensor is ready for use.");
}
 
void loop()
{
  // Read gas data from the sensor
  float coConcentration = mics.getGasData(CO);
  float ch4Concentration = mics.getGasData(CH4);
  float c2h5ohConcentration = mics.getGasData(C2H5OH);
  float h2Concentration = mics.getGasData(H2);
  float nh3Concentration = mics.getGasData(NH3);
  float no2Concentration = mics.getGasData(NO2);
 
  // Print the gas concentrations to the serial monitor
  Serial.print("CO (Carbon Monoxide): ");
  Serial.print(coConcentration, 1);
  Serial.println(" PPM");
 
  Serial.print("CH4 (Methane): ");
  Serial.print(ch4Concentration, 1);
  Serial.println(" PPM");
 
  Serial.print("C2H5OH (Ethanol): ");
  Serial.print(c2h5ohConcentration, 1);
  Serial.println(" PPM");
 
  Serial.print("H2 (Hydrogen): ");
  Serial.print(h2Concentration, 1);
  Serial.println(" PPM");
 
  Serial.print("NH3 (Ammonia): ");
  Serial.print(nh3Concentration, 1);
  Serial.println(" PPM");
 
  Serial.print("NO2 (Nitrogen Dioxide): ");
  Serial.print(no2Concentration, 1);
  Serial.println(" PPM");
  Serial.println();
 
  delay(1000); // Wait for 1 second before the next reading
  
  // Uncomment the line below to put the sensor to sleep mode after each reading
  // mics.sleepMode();
}

Upload the above code to your Arduino Board.




Testing the MiCS-5524 Sensor Readings

Typically, the sensor requires a warm-up period (often around 24-48 hours after first powered up) and specific calibration to environmental conditions to ensure accuracy.

Once calibrated, place the sensor in different environmental conditions to see how it responds. This could include areas with no known gas exposure to test the baseline stability and areas where you expect gas presence.

Testing MiCS-5524 Sensor

I used perfumes to test the sensor and get some readings.

As shown above, the reading changes continuously based on the availability of different gases.

You can check out the MiCS-5524 datasheet for more information on how to calibrate the mics5524 sensor before using it.

Share. Facebook Twitter Pinterest LinkedIn Tumblr Email Reddit Telegram WhatsApp
Previous ArticleInterfacing XBee Module with Raspberry Pi Pico & MicroPython
Next Article ESP32 Home Automation with KME Smart IoT Platform

Related Posts

DC Energy Meter using Arduino

Build a DC Energy Meter using Arduino – 32V/5A

Updated:August 26, 20252K
Interfacing ADXL375 Accelerometer with Arduino

Interfacing ADXL375 Accelerometer with Arduino (±200g)

Updated:June 28, 2025
PZEM-004T Arduino Energy Meter

DIY AC Energy Meter using PZEM-004T & Arduino

Updated:March 6, 20258K
Interfacing BMI160 Accelerometer & Gyroscope with Arduino

Interfacing BMI160 Accelerometer & Gyroscope with Arduino

Updated:February 2, 20259K
Password Based Door Lock Security System Using Arduino & Keypad

Password Based Door Lock Security System Using Arduino & Keypad

Updated:February 2, 20252436K
Earthquake Detector Alarm with with Accelerometer & Arduino

Earthquake Detector Alarm with Accelerometer & Arduino

Updated:February 2, 2025661K
Add A Comment

CommentsCancel reply

Latest Posts
ESP32 Fingerprint Attendance System with Live Web Dashboard

ESP32 Fingerprint Attendance System with Live Web Dashboard

June 21, 2026
IoT Based PM & Air Quality Monitoring System using ESP32

IoT Based PM & Air Quality Monitoring System using ESP32

June 14, 2026
DIY ESP32 MLX90640 IR Thermal Camera with Live Web Display

DIY ESP32 MLX90640 IR Thermal Camera with Live Web Display

May 10, 2026
IoT Activity Tracker with ESP32 & Accelerometer Gyroscope

IoT Activity Tracker with ESP32 & Accelerometer/Gyroscope

May 2, 2026
A Guide to Sourcing Obsolete ICs for Vintage Projects

Beyond AliExpress: A Guide to Sourcing Obsolete ICs for Vintage Projects

April 21, 2026

ESP32 IoT Vehicle Motion Analyzer with MPU6050 & LIS3MDL

April 27, 2026
Building a Smart Sensor Node with a BLE Microcontroller

Building a Smart Sensor Node with a BLE Microcontroller

February 26, 2026
High-Accuracy Pitch, Roll, Yaw with ESP32 & BNO08x IMU

High-Accuracy Pitch, Roll, Yaw with ESP32 & BNO08x IMU

April 27, 2026
Top Posts & Pages
  • ESP32 Fingerprint Attendance System with Live Web Dashboard
    ESP32 Fingerprint Attendance System with Live Web Dashboard
  • IoT AC Energy Meter with PZEM-004T & ESP32 WebServer
    IoT AC Energy Meter with PZEM-004T & ESP32 WebServer
  • 12V DC to 220V AC Inverter Circuit & PCB
    12V DC to 220V AC Inverter Circuit & PCB
  • How to use Modbus RTU with ESP32 to read Sensor Data
    How to use Modbus RTU with ESP32 to read Sensor Data
  • ESP32 CAN Bus Tutorial | Interfacing MCP2515 CAN Module with ESP32
    ESP32 CAN Bus Tutorial | Interfacing MCP2515 CAN Module with ESP32
  • How to use INA226 DC Current Sensor with Arduino
    How to use INA226 DC Current Sensor with Arduino
  • Buck Converter: Basics, Working, Design & Application
    Buck Converter: Basics, Working, Design & Application
  • IoT Based ECG Monitoring with AD8232 ECG Sensor & ESP32
    IoT Based ECG Monitoring with AD8232 ECG Sensor & ESP32
Categories
  • Arduino Projects (197)
  • Articles (60)
    • Learn Electronics (19)
    • Product Review (15)
    • Tech Articles (28)
  • Electronics Circuits (46)
    • 555 Timer Projects (21)
    • Op-Amp Circuits (7)
    • Power Electronics (13)
  • IoT Projects (205)
    • ESP32 MicroPython (7)
    • ESP32 Projects (82)
    • ESP32-CAM Projects (15)
    • ESP8266 Projects (76)
    • LoRa/LoRaWAN Projects (22)
  • Microcontrollers (38)
    • AMB82-Mini IoT AI Camera (4)
    • BLE Projects (18)
    • STM32 Projects (19)
  • Raspberry Pi (93)
    • Raspberry Pi Pico Projects (57)
    • Raspberry Pi Pico W Projects (12)
    • Raspberry Pi Projects (24)
Follow Us
  • Facebook
  • Twitter
  • Pinterest
  • Instagram
  • YouTube
About Us

“‘How to Electronics’ is a vibrant community for electronics enthusiasts and professionals. We deliver latest insights in areas such as Embedded Systems, Power Electronics, AI, IoT, and Robotics. Our goal is to stimulate innovation and provide practical solutions for students, organizations, and industries. Join us to transform learning into a joyful journey of discovery and innovation.

Copyright © How To Electronics. All rights reserved.
  • About Us
  • Disclaimer
  • Privacy Policy
  • Contact Us
  • Advertise With Us

Type above and press Enter to search. Press Esc to cancel.

Ad Blocker Enabled!
Ad Blocker Enabled!
Looks like you're using an ad blocker. Please allow ads on our site. We rely on advertising to help fund our site.