Как работает датчик газа/дыма MQ-2? И его взаимодействие с Arduino
Дайте вашему следующему проекту на Arduino нос для возможности обнаружения газов с помощью модуля датчика газа MQ-2. Это надежный датчик газа, подходящий для определения концентрации в воздухе LPG (сжиженного нефтяного газа), дыма, алкоголя, пропана, водорода, метана и угарного газа. Если вы планируете создать систему контроля качества воздуха в помещении, устройство проверки дыхания или систему раннего обнаружения пожара, то модуль датчика газа MQ-2 будет отличным выбором.
![Рисунок 1 Как работает датчик газа/дыма MQ-2? И его взаимодействие с Arduino](/uploads/media/articles/0001/04/cafc0cfce9d0f9b808a3de428d0bc7e85c33ede5.jpeg)
Что такое датчик газа MQ-2?
MQ-2 является одним из наиболее часто используемых датчиков газа из серии датчиков MQ. Это датчик газа типа металл-оксид-полупроводник (МОП, MOS), также известный как химрезистор (химический резистор), поскольку обнаружение основано на изменении сопротивления чувствительного материала, когда газ вступает в контакт с этим материалом. Используя простую цепь делителя напряжения, можно измерить концентрацию газа.
![Рисунок 2 Датчик газа MQ-2](/uploads/media/articles/0001/04/c5ed68b456d8d67d4095efa80936db9c23dc9432.jpeg)
Датчик газа MQ-2 работает при постоянном напряжении 5 В и потребляет около 800 мВт. Он может обнаруживать концентрации LPG (сжиженного нефтяного газа), дыма, алкоголя, пропана, водорода, метана и угарного газа от 200 до 10000 ppm (миллионных долей).
Чему равен 1 ppm?
При измерении газов, таких как углекислый газ, кислород или метан, термин концентрация используется для описания количества газа по объему в воздухе. Двумя наиболее распространенными единицами измерения являются миллионная доля (ppm) и процентная концентрация.
Миллионная доля (сокращенно ppm) – это соотношение одного газа к другому. Например, 1000 ppm CO означает, что если бы вы могли сосчитать миллион молекул газа, 1000 из них были бы моноокисью углерода, а 999 000 молекул – какими-то другими газами.
Вот полный список технических характеристик:
Рабочее напряжение | 5 В |
Сопротивление нагрузки | 20 кОм |
Сопротивление нагревателя | 33 Ом ± 5% |
Потребляемая мощность | <800 мВт |
Сопротивление чувствительности | 10 кОм - 60 кОм |
Измерение концентрации | 200 - 10000 ppm |
Время разогрева | более 24 часов |
Для более подробной информации, пожалуйста, обратитесь техническому описанию.
Совет
Датчик чувствителен к нескольким газам – но не может сказать, какой из них он обнаружил! Это нормально; большинство датчиков газа такие. Таким образом, он лучше всего подходит для измерения изменений концентрации известного газа, а не для определения концентрация какого газа изменилась.
Внутренняя структура датчика газа MQ-2
Датчик фактически заключен в два слоя тонкой сетки из нержавеющей стали, которая называется «антивзрывной сеткой» (anti-explosion network). Она гарантирует, что нагревательный элемент внутри датчика не вызовет взрыва, когда мы ищем легковоспламеняющиеся газы.
![Рисунок 3 Внешние компоненты датчика газа MQ-2](/uploads/media/articles/0001/04/ab0ab3a087f1d5e0dec9b1decb2b0c9e52cf8a70.jpeg)
Она также обеспечивает защиту датчика и отфильтровывает взвешенные частицы, поэтому внутрь камеры могут проходить только газообразные элементы. Сетка связана с остальной частью корпуса через медное зажимное кольцо.
![Рисунок 4 Внутренняя структура с чувствительным элементом и соединительными выводами](/uploads/media/articles/0001/04/912dd6b970356bd73da18a95e9169275350d4e8b.jpeg)
Так выглядит датчик при удалении внешней сетки. Звездообразная структура образована из чувствительного элемента и шести соединительных ножек, которые выходят за пределы бакелитового основания. Из шести два вывода (H) отвечают за нагрев чувствительного элемента и соединены через катушку из никель-хромовой проволоки, хорошо известного проводящего сплава.
Остальные четыре вывода (A и B), отвечающие за выходные сигналы, подключены с использованием платиновых проводов. Эти провода соединены с корпусом чувствительного элемента и передают небольшие изменения тока, который проходит через чувствительный элемент.
![Рисунок 5 Чувствительный элемент – оксид алюминия на керамическом основании с покрытием из диоксида олова](/uploads/media/articles/0001/04/dc8fd43d4509ed85cf54189edd23da19e4fac16e.png)
Трубчатый чувствительный элемент изготовлен из керамики на основе оксида алюминия (Al2O3) и покрыт диоксидом олова (SnO2). Диоксид олова здесь является наиболее важным материалом, будучи чувствительным к горючим газам. Керамическая подложка просто увеличивает эффективность нагрева и обеспечивает постоянное нагревание площади датчика до рабочей температуры.
![Рисунок 6 Внутренняя структура чувствительного элемента датчика газа MQ-2](/uploads/media/articles/0001/04/8e63b964baf7404c16267c1a2905c1b52b71b064.jpeg)
Итак, никель-хромовая катушка и керамика на основе оксида алюминия образуют систему подогрева; в то время как платиновые проволоки и покрытие из диоксида олова образуют сенсорную систему.
Как работает датчик газа?
Когда диоксид олова (частицы полупроводника) нагревается на воздухе до высокой температуры, на его поверхности адсорбируется кислород. В чистом воздухе донорные электроны диоксида олова притягиваются к кислороду, который адсорбируется на поверхности чувствительного материала. Это предотвращает протекание электрического тока.
В присутствии восстановительных газов поверхностная плотность адсорбированного кислорода уменьшается, так как он реагирует с восстановительными газами. Из-за чего электроны высвобождаются в диоксид олова, что позволяет току свободно течь через датчик.
Обзор аппаратного обеспечения – модуль датчика газа MQ-2
Поскольку сам датчик газа MQ-2 не совместим с макетными платами, мы рекомендуем для тестов использовать этот удобный небольшой модуль. Он очень прост в использовании и имеет два разных выхода. Он не только выдает двоичное представление о наличии горючих газов, но также выдает аналоговое представление об их концентрации в воздухе.
![Рисунок 8 Модуль датчика газа MQ-2](/uploads/media/articles/0001/04/62c31f9af8e042a2824a5ebf18a9451f403ccb2d.jpeg)
Напряжение на аналоговом выходе датчика изменяется пропорционально концентрации дыма/газа. Чем больше концентрация газа, тем выше выходное напряжение; в то время как меньшая концентрация газа приводит к более низкому выходному напряжению. Следующая анимация иллюстрирует взаимосвязь между концентрацией газа и выходным напряжением.
![Рисунок 9 Выходной сигнал модуля датчика газа MQ-2](/uploads/media/files/0001/04/45dfb1117db2a6bc8df586fbb2e910b058829cad.gif)
Аналоговый сигнал от датчика газа MQ-2 поступает на высокоточный компаратор LM393 (впаян в нижней стороне модуля) для оцифровки. Рядом с компаратором имеется небольшой потенциометр, который можно покрутить, чтобы отрегулировать чувствительность датчика. Вы можете использовать его для регулировки концентрации газа, при которой датчик его обнаруживает.
Калибровка модуля датчика газа MQ-2
Чтобы откалибровать датчик газа, вы можете держать датчик газа рядом с дымом/газом, который вы хотите обнаруживать, и поворачивать потенциометр, пока на модуле не начнет светиться красный светодиод. Поворачивайте потенциометр по часовой стрелке, чтобы увеличить чувствительность, или против часовой стрелки, чтобы уменьшить чувствительность.
![Рисунок 10 Потенциометр регулировки чувствительности модуля датчика газа MQ-2](/uploads/media/articles/0001/04/b878c26e8f5f3394f2659c66e271f3e6f7a6762c.jpeg)
Компаратор на модуле постоянно проверяет, достиг ли аналоговый выходной сигнал (A0) порогового значения, установленного потенциометром. Когда он пересекает пороговое значение, цифровой выход (D0) выдаст высокий логический уровень, и загорится светодиодный индикатор. Эта настройка очень полезна, когда вам нужно при достижении определенного порога запустить какое-то действие. Например, когда концентрация дыма пересекает пороговое значение, вы можете включить или выключить реле или дать команду включить вентиляцию или спринклерную систему пожаротушения.
Распиновка модуля датчика газа MQ-2
Теперь давайте посмотрим на распиновку.
![Рисунок 11 Распиновка модуля датчика газа MQ-2](/uploads/media/articles/0001/04/aee7be9598489ca74565c61eff6d245523ea3cd7.jpeg)
- VCC обеспечивает питание для модуля. Вы можете подключить его к выходу 5 В вашей платы Arduino.
- GND – вывод земли, должен быть подключен к выводу GND на Arduino.
- D0 обеспечивает цифровое представление о наличии горючих газов.
- A0 обеспечивает аналоговое выходное напряжение, пропорциональное концентрации дыма/газа.
Подключение модуля датчика газа MQ-2 к Arduino UNO
Теперь, когда у нас есть полное представление о том, как работает датчик газа MQ-2, мы можем подключить его к нашей плате Arduino!
Подключить модуль датчика газа MQ-2 к Arduino довольно просто. Начните с установки датчика на макетную плату. Подключите вывод VCC к выводу 5V на Arduino, а вывод GND – к выводу Ground на Arduino.
Подключите выходной вывод D0 на модуле к цифровому выводу 8 на Arduino, а выходной вывод A0 на модуле – к аналоговому выводу 0 на Arduino.
Когда вы закончите, у вас должно получиться что-то похожее на рисунок ниже.
![Рисунок 12 Подключение модуля датчика газа MQ-2 к Arduino](/uploads/media/articles/0001/04/903949451c2b9ee92ea546edac16308759bb6cd3.jpeg)
Итак, теперь, когда мы подключили наш датчик газа, пришло время написать код и проверить его.
Код Arduino
Код очень прост, и, в основном, он просто читает аналоговое напряжение на выводе A0. При обнаружении дыма он выводит сообщение на мониторе последовательного порта. Посмотрите скетч, прежде чем мы начнем его подробный разбор.
#define MQ2pin (0)
float sensorValue; // переменная для хранения значения датчика
void setup()
{
Serial.begin(9600); // настроить последовательный порт на скорость 9600
Serial.println("Gas sensor warming up!");
delay(20000); // дать MQ-2 время для прогрева
}
void loop()
{
sensorValue = analogRead(MQ2pin); // прочитать аналоговый вход 0
Serial.print("Sensor Value: ");
Serial.print(sensorValue);
if(sensorValue > 300)
{
Serial.print(" | Smoke detected!");
}
Serial.println("");
delay(2000); // подождать 2 сек до следующего чтения
}
Скетч начинается с определения вывода Arduino, к которому подключен аналоговый вывод датчика газа MQ-2. Переменная под названием sensorValue
определена для хранения значения датчика.
#define MQ2pin (0)
float sensorValue; // переменная для хранения значения датчика
В функции setup()
мы инициализируем последовательную связь с ПК и ждем 20 секунд, чтобы дать датчику прогреться.
Serial.begin(9600); // настроить последовательный порт на скорость 9600
Serial.println("Gas sensor warming up!");
delay(20000); // дать MQ-6 время для прогрева
В функции loop()
значение датчика считывается функцией analogRead()
и отображается в мониторе последовательного порта.
sensorValue = analogRead(MQ2pin); // прочитать аналоговый вход 0
Serial.print("Sensor Value: ");
Serial.print(sensorValue);
Когда концентрация газа достаточно высока, датчик обычно выдает значение, превышающее 300. Мы можем отслеживать это значение с помощью оператора if
. И когда значение датчика превысит 300, мы отобразим сообщение «Smoke detected!» (Обнаружен дым!).
if(sensorValue > 300)
{
Serial.print(" | Smoke detected!");
}
Вывод в мониторе последовательного порта выглядит так:
![Рисунок 13 Вывод в мониторе последовательного порта скетча для работы с модулем датчика газа MQ2](/uploads/media/articles/0001/04/3e8cbbad8b523db9509646323d760ca0b950a50b.png)