Подключение датчика газа MQ-2 к Arduino

 

Датчик MQ-2 Ардуино позволяет выявлять в воздухе минимальную концентрацию водорода и углеводородных газов (пропан, метан, бутан). Применяют сенсоры MQ-2 в проектах умного дома для своевременного обнаружения газа или дыма. Сенсор относится к семейству датчиков MQ, которые отличаются низкой стоимостью, простотой использования и легкостью подключения к микроконтроллеру Ардуино.

Датчик утечки газа MQ2 на Ардуино

Принцип сенсора основан на детекторе, изготовленного из сплава оксида олова и алюминия, который в процессе работы сенсора существенно нагревается. В результате химической реакции, происходящей при попадании молекул углеводородных газов на чувствительный элемент, изменяется сопротивление сенсора. Измеряя изменения сопротивления, можно узнать точное значение концентрации газа в воздухе.

При измерении газов, термин «концентрация» используется для описания количества газа в воздухе по объему. Наиболее распространенными единицами измерения являются доли на миллион и процентная концентрация. Доли на миллион (ppm) — это отношение одного газа к другому. Например, концентрация 1000 ppm CO означает, что на 999 000 молекул газа, 1000 из них будут относится к углекислому газу.

Характеристики датчика MQ2 Ардуино

  • Питание: 5 Вольт;
  • Потребляемый ток: 180мА;
  • Чувствительность: 300-10000 ppm;
  • Рабочая температура: от -10 до +50 °C;
  • Влажность воздуха: не более 95%;
  • Интерфейс: аналоговый и цифровой.

Схема и распиновка датчика газа MQ2

Распиновка датчика MQ2
Распиновка сенсора утечки газа MQ2 на Ардуино

Напряжение аналогового выхода изменяется пропорционально концентрации дыма или газа. Чем выше концентрация газа, тем выше выходное напряжение. Логический сигнал можно откалибровать, держа датчик рядом с дымом, который вы хотите обнаружить. Далее вращайте потенциометр по часовой стрелке (для увеличения чувствительности сенсора), пока не загорится красный светодиод на модуле.

Как подключить датчик MQ2 к Ардуино

Для этого занятия потребуется:

  • Arduino Uno / Arduino Nano / Arduino Mega;
  • датчик газа MQ2;
  • макетная плата;
  • светодиод;
  • резистор 220 Ом;
  • провода «папа-папа», «папа-мама».
Схема подключения датчика MQ2 к Ардуино
Схема подключения датчика MQ2 к Ардуино Уно
MQ2 Arduino Uno Arduino Nano Arduino Mega
GND GND GND GND
VCC 5V 5V 5V
OUT A1 A1 A1

Рассмотрим несколько вариантов кода для сенсора. Первый вариант — без библиотеки и еще два примера с библиотеками MQ2.h и TroykaMQ.h от Амперки. Обе библиотеки можно скачать на нашем сайте здесь. Обратите внимание, что при установке сразу двух библиотек будет происходить конфликт и Arduino IDE выдаст ошибку при компиляции. Загрузите первый пример, после сборки схемы, представленной на картинке выше.

Скетч. Применяем датчик MQ2 без библиотеки

#define PIN_MQ2  A1    // имя пина для подключения MQ2
#define LED       13   // имя пина для подключения светодиода

int value;

void setup() {
  Serial.begin(9600);
  pinMode(LED, OUTPUT);
  pinMode(PIN_MQ2, INPUT);
}

void loop() {
   // записываем полученные данные с датчика
   value = analogRead(PIN_MQ2);

   // выводим информацию на монитор порта
   Serial.println("VALUE - " + String(value));
   Serial.println(" ");

   // включаем светодиод при превышении определенного значения
   if (value > 200) { digitalWrite(LED, HIGH); }
   else { digitalWrite(LED, LOW); }

   delay(200);
}

Пояснения к коду:

  1. в этом примере необходимо будет откалибровать датчик, т.е. настроить включение светодиода при заданном пороге концентрации газа. При этом датчик не распознает газы, поэтому лучше использовать библиотеки для MQ2.



Датчик широкого спектра газов MQ-2
Датчик широкого спектра газов MQ-2 и Ардуино

Для следующего примера следует переключить пин A1 на логический порт сенсора газа (цифровой сигнал). Если вы используете датчик широкого спектра газов MQ-2 от компании Амперка, то подключите его к микроконтроллеру, согласно схеме. При этом у сенсора должен быть включен нагрев (замкнута перемычка на плате датчика). После подключения датчика к Arduino, загрузите следующую программу в плату.

Скетч. Подключение датчика с библиотекой MQ2.h

#include <MQ2.h>  // библиотека для датчика

#define PIN_MQ2  A1    // имя пина для подключения MQ2
#define LED       13   // имя пина для подключения светодиода
MQ2 mq2(PIN_MQ2);   // создаём объект для работы с датчиком

int lpg, co, smoke;

void setup() {
  Serial.begin(9600);
  mq2.begin();
  pinMode(LED, OUTPUT);
}

void loop() {
   float* values = mq2.read(true);

   // получаем информацию с датчика
   // выводим данные на монитор порта
   lpg = mq2.readLPG();
   co = mq2.readCO();
   smoke = mq2.readSmoke();
  
   // включаем светодиод при превышении концентрации CO
   if (co > 1000) { digitalWrite(LED, HIGH); }
   else { digitalWrite(LED, LOW); }

   delay(200);
}

Пояснения к коду:

  1. информация с датчика выводится на монитор порта Arduino IDE;
  2. порог включения светодиода можно изменить в операторе if и настроить программу на определение концентрации другого газа (в примере указан CO).

Скетч. MQ2 от Амперки с библиотекой TroykaMQ.h

#include <TroykaMQ.h>  // библиотека для датчика

#define PIN_MQ2  A1     // имя пина для подключения датчика
MQ2 mq2(PIN_MQ2);    // создаём объект для работы с датчиком

void setup() {
   Serial.begin(9600);
   // выполняем калибровку датчика
   mq2.calibrate();
   // выводим сопротивление датчика в чистом воздухе (Ro)
   Serial.println("Ro = " + String(mq2.getRo()));
}

void loop() {
   // выводим значения газов в ppm
   Serial.println("LPG: " + String(mq2.readLPG()) + " ppm");
   Serial.println("Methane: " + String(mq2.readMethane()) + " ppm");
   Serial.println("Smoke: " + String(mq2.readSmoke()) + " ppm");
   Serial.println("Hydrogen: " + String(mq2.readHydrogen()) + " ppm");

   Serial.println(" ");
   delay(200);
}

Пояснения к коду:

  1. в представленном примере информация по концентрации газов выводится в последовательный порт, без включения светодиода;
  2. сенсор должен находится в режиме постоянного нагрева (перемычка замкнута).

Заключение. MQ2 — один из наиболее часто используемых датчиков газа в серии датчиков MQ Arduino. Модуль отлично подойдет для проектов, где требуется создать систему мониторинга качества воздуха в помещении. Способен обнаружить газ при концентрации в воздухе от 200 ppm. Все возникшие вопросы по подключению MQ2 к микроконтроллеру Ардуино и скетчам, оставляйте в комментариях к записи.



6 Replies to “Подключение датчика газа MQ-2 Ардуино”

  1. Здравствуйте. Ни где не могу найти решение проблемы. Датчик подключаю к проекту, где есть иные датчики по типу влажности, температуры, дисплей — в общем умная баня. И когда подключаю этот датчик, то всё остальное перестаёт работать. Может Вы сталкивались с такой проблемой и можете дать совет?

    1. Скорее всего питания нихватает.
      Запитай от внешнего блока питания.

  2. Внимательно посмотрите схему подключения, если все перестает работать (в том числе индикация на плате Ардуино) — то происходит короткое замыкание (датчик газа подключен не правильно). Если все работает, то возможно не хватает питания для всех модулей, подключенных к Ардуино.

    1. Не знаю про что говорите. Цитирую Потребляемый ток: 180мА;
      Очевидно плата меньше. Любой порт усб потянет

  3. Все хорошо, но если порт постоянно перестраивается то на вход то выход. То по цепи выхода датчика происходит ложное срабатывание так pin ,будет то 0 то 1 и требуется развязка.

  4. => Скетч. Подключение датчика с библиотекой MQ2.h

    => Serial.begin(9600);
    Это зачем? Если нигде не используется?!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.