Датчик угарного газа схема

Добавил пользователь Дмитрий К.
Обновлено: 19.09.2024

Библиотека для работы с датчиками газа серии MQ. Поддерживаются модели с MQ-2 до MQ-9.

Получение значений в абсолютных единицах с этих датчиков требует нетривиальной арифметики. Библиотека скрывает внутри себя все эти сложности.

Функции модуля

connect(opts)

Возвращает новый объект GasSensor . В качестве opts ожидается объект со свойствами:

model — строка с моделью датчика: "MQ2" , "MQ3" , "MQ4" , "MQ5" , "MQ6" , "MQ7" , "MQ8" , "MQ9" , "MQ135" ;

Параметр r0 может быть установлен с помощью метода calibrate при калибровке сенсора в чистом воздухе.

GasSensor

Объект реализует взаимодействие с модулями MQ. Для создания нового экземпляра, используйте connect .

heat([val])

Принудительно управляет нагревателем сенсора с помощью ШИМ, скважность которого указывается в параметре val от 0 до 1, либо булевым значением.

Если val не передан, включает нагреватель на полную.

preheat(callback)

Запускает предварительный прогрев сенсоров на полную мощность, на 30 секунд. После этого вызывает функцию callback .

Нагреватель остаётся включенным после завершения прогрева.

Для датчиков MQ-7, MQ-9 и других датчиков, считывание показаний с которых происходит после цикла нагрева/охлаждения, вместо этого метода используйте cycleHeat ;

cycleHeat(callback)

Запускает циклические изменения нагрева, которое требуется моделями вроде MQ-7 и MQ-9. В конце каждого цикла вызывает функцию callback .

Для остановки цикла необходимо вместо функции обратного вызова передать false или вызвать heat с параметром 0

calibrate()

Устанавливает и возвращает калибровочный коэффициент r0 , который необходим, как базис для дальнейшего расчёта PPM при вызове read .

Вызывать метод следует единожды, после прогрева датчика (см. preheat ). Предполагается, что на момент вызова калибровки, сенсор находится в чистом воздухе, при нормальной температуре и влажности.

Вы можете записать полученное значение и далее передавать его в функцию connect при создании объекта. В этом случае больше калибровать этот конкретный физический экземпляр датчика при регулярном использовании не нужно.

read([gas])

Считывает показания сенсора и возвращает данные в PPM (parts per million, миллионных долях).



Нередко мы сильно увлекаемся написанием кода настолько, что забываем подышать свежим воздухом, особенно когда нельзя держать окно постоянно открытым (ну, бывают причины). В результате этого в помещении повышается концентрация СО₂ и впоследствии начинаются неприятные побочные эффекты в виде сонливости, заторможенности и головной боли. Для решения этой проблемы существуют датчики СО₂, которые при достижении определённой концентрации скажут, что пора открыть окно. Готовые варианты конечно хорошо, но это слишком просто — сделаем своё хост-устройство для измерения и разомнём извилины.

▍ Введение

Притормозим с открытием САПР для проектирования печатных плат и IDE. Зададим несколько вопросов и соберём нужную нам информацию.

Негативные эффекты от воздействия СО₂ начинают проявляться, когда уже всё — приплыли. Даже если после их проявления проветрить помещение, то они сразу не уйдут и будут о себе напоминать ещё некоторое время (в моём случае это минут 20-30). Чтобы этого избежать нужно измерять уровень СО₂ и сигнализировать о повышенном уровне заранее.

Концентрация СО₂ измеряется в PPM. По сути, PPM это количество молекул СО₂ на миллион молекул другого газа, в нашем случае воздуха. Например, если концентрация равна 400ppm, то это значит, что в измеряемом объёме на каждый 1млн молекул приходится 400 молекул измеряемого газа.

Раз уж мы заговорили о концентрации, то нужно понять, при какой концентрации начинают наступать негативные эффекты. И тут нам поможет вот такая красивая картинка:


Концентрация СО₂ vs последствия

Как видно из шкалы уже при 1000 PPM начитают проявляться первые негативные эффекты, соответственно при этом значении нужно начинать наводить панику. При достижении 2500 PPM начинаются уже более серьёзные последствия, а 5000 ppm гарантировано заставят вас покинуть помещение и сходить за очередной кружкой чая.

▍ Требования

Хорошо, у нас теперь есть концентрация, от которой мы можем отталкиваться при разработке. Теперь определимся с требованиями к устройству:

  • Компактность. Я думаю никто не хочет видеть у себя на полке огромную коробку.
  • Работа от встроенного АКБ, не люблю батарейки.
  • Автономность. Зарядил и поставил на полку, никаких проводов.
  • Пищалки зло, будем использовать мигающие светодиоды для индикации.
  • Светодиоды должны иметь достаточную яркость, чтобы их заметить, но не освещать всю комнату по ночам.
  • Два уровня индикации: нежелательная и опасная концентрации.
  • Дисплей. Хорошо бы знать текущую концентрацию в помещении.
  • Возможность установки на стену или просто поставить на полку.

▍ Датчик СО₂

Начнём с самого основного — измерительного модуля. Разумеется, мы возьмём готовый OEM вариант, т.к. разрабатывать свой ну это крайне сложная задача и требует наличия людей намного умнее меня. Мой выбор пал на NDIR датчик MH-Z19B, т.к. его проще всего достать:


Относительно остальных компонентов это будет самая дорогая часть устройства не только в плане цены, но и в плане потребления. Давайте глянем его характеристики:

  • Измеряемый диапазон 0-5000 PPM. Нам это подходит.
  • Период измерения 1 секунда и он не настраивается. Это очень плохо, т.к. мы не можем снизить потребление датчика путём уменьшения частоты измерений.
  • Напряжение питания 5В. Тут нужен будет повышающий DC-DC, т.к. работать мы будем от Li-ion АКБ (3.7В).
  • Интерфейс коммуникации UART.
  • Среднее потребление 30мА. Главный пик тока приходится на вспышку лампочки во время измерения концентрации. Это на самом деле очень печально, хотелось бы меньше, но других бюджетных вариантов нет, которые можно пойти в магазин и купить.

Давайте немного поговорим о том, как он работает. Упрощённая схема выглядит так:


Схема работы датчика газов

Молекулы газа имеют свойство поглощать определённую длину волны. Разумеется, для каждого газа поглощаемая длина волны разная, это позволяет исключить влияние других газов на результат измерения.

В измеряемый объём помещается газ, и делается вспышка источником света. Свет проходит через измеряемый газ, и излучение поглощается молекулами по пути к детектору. Перед детектором стоит фильтр, который пропускает только нужную нам длину волны. В данном случае это длина волны, поглощаемая молекулами СО₂, и, если я не ошибаюсь, это 4.26мкм (поправьте, пожалуйста, если я неправ). Чем больше молекул СО₂ в измеряемом объёме, тем больше поглощение — мы получаем зависимость поглощения от концентрации.

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

Продолжим ковырять наше устройство дальше.

▍ Выбор железа

Я решил использовать STM32F030 в качестве микроконтроллера для обработки данных с датчика. Да, у STM есть L версии микроконтроллеров, которые в разы меньше потребляют, но и цена у них в разы выше. На самом деле у меня их целая коробка и нужно их куда-то определять.

В качестве DC-DC для питания устройства возьмём L6920DTR. Не очень дорогой и требует минимум обвязки, да и эффективность заявлена неплохая — порядка 95%. С питанием тут не всё просто. Для питания датчика нужно 5В, а для питания МК 3.3В. Соответственно проще всего будет поднять напряжение до 5В при помощи DC-DC, а для питания МК опустить напряжение обычным линейным стабилизатором. При токах питания МК потери на стабилизаторе будут минимальные.

Для зарядки АКБ используем микросхему STC4054GR. Она имеет все необходимые нам плюшки в виде установки тока заряда и индикации. Сам аккумулятор выберем позже после разработки ПП, чтобы это всё дело влезло в корпус с максимальным использованием свободного места.

Дисплей возьмём 0.96 дюйма на базе SSD1306:



Дисплей на базе SSD1306

▍ Разработка железа

Местами есть конденсаторы на 25В, которые стоят в цепи 3.3В — это нормально. Дело в том, что при разработке схем я сначала отталкиваюсь от своих запасов и только потом иду в магазин.


Схема (часть 2)

В целом тут ничего особенного. Самая печатная плата получилась достаточно компактной и имеет размеры 55х45. Около 50% занимает сам датчик СО₂:


3D модель печатной платы

▍ Разработка корпуса

Тут уже интереснее — нужно всё это уместить в компактном виде. В качестве материала будем использовать PLA пластик и FDM печать. Размеры в сборе 51х64х30 (ШхВхГ). Корпус получился достаточно толстым, но в целом приемлемо и на полке смотрится неплохо:


3D модель корпуса

На лицевой части имеются 3 отверстия для светодиодов. Два верхних для индикации концентрации: жёлтый и красный. Жёлтый означает, что пора открыть окно, красный — пора бежать :) Третье отверстие для светодиода индикации процесса заряда АКБ.

Также спереди и снизу имеются отверстия для циркуляции воздуха. Изначально я хотел сделать принудительную циркуляцию при помощи вентилятора. Микроконтроллер периодически запускал бы его и продувал датчик, но впоследствии отказался от этого. Не хочу, чтобы ночью он внезапно начал шуршать вентилятором, да и механические детали не очень надёжны (скрипят, шумят, в них постоянно что-то попадает).

Сзади имеется паз под саморез\винт\болт\гвоздь, на который его можно повесить на стену где-нибудь в офисе, например.



Крепление дисплея к корпусу

Дальше устанавливается основная плата. Она уже крепится на саморезы, т.к. в процессе отладки приходилось её часто снимать.



Установка ПП в корпус

Дальше ставится АКБ на плату и прижимается задней крышкой. Кстати, АКБ я выбрал на 1200мА — это самый толстый АКБ, который влез в этот корпус.



АКБ



Задняя крышка устройства

▍ Код, код, код

В будущем нужно будет предусмотреть принудительную калибровку, т.к. качество воздуха везде разное. Где-то может 1000 PPM быть на улице (надеюсь нет) и ниже этого значения концентрация никогда не упадёт. Всё относительно.

Дальше в коде имеется функция co2_sensor_read_concentration, которая дёргается каждые 3 секунды. Команда для чтения концентрации имеет следующий вид: 0xFF, 0x01, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79. На неё датчик отвечает 0xFF, 0x01, CONC, CONC. В последних двух байтах содержится нужное нам значение концентрации. В главном цикле это значение отображается на дисплей и принимается решение о включении нужных светодиодов. В целом всё достаточно просто.

▍ Результаты

Устройство получилось достаточно компактным, вполне можно брать с собой и носить в кармане. По потреблению немного скудно — 3 дня без подзарядки. Очень хотелось бы уменьшить частоту измерений до 0.1Гц, это позволило бы снизить потребление в разы, но увы. Ток заряда 300мА и заряжается до 100% за несколько часов.

Итоговая стоимость без учёта моего времени порядка 2000р (2021 год), из которых 60% это стоимость датчика СО₂.


1. Если в разогретых печи или камине остались непрогоревшие угли, а вьюшку трубы закрыли. Самая часта причина угара в раньшие времена – экономные крестьяне обязательно закрывали трубу после топки печи, поскольку через печную тягу уходила часть тепла, выстуживая избу. Если это сделать чуть раньше, чем нужно, то дотлевающие в разогретой топке угли выделяли СО.

2. В наше время, когда печное отопление скорее редкость, а камины, в силу более открытой конструкции, все же менее склонны к образованию СО, наиболее частой причиной угара становится автомобиль, стоящий с заведенным мотором в гараже. Особенно при утреннем прогреве – холодный двигатель, работая на переобогащенной смеси, выделяет просто огромное количество СО. И, если вы думаете, что открытые ворота вас спасут – то нет, ничего подобного. Концентрация растет ОЧЕНЬ быстро, через ворота вентилироваться не успевает. Насмерть, конечно, вряд ли угорите, но голова потом будет болеть так, что живые позавидуют мертвым.


Пластиковый белый корпус, цифровой ЖК-индикатор, одна кнопка, три светодиода, решетка сирены-кричалки.
Индикатор показывает два вида данных – температура воздуха в помещении:



…и содержание в этом воздухе СО – в PPM, то есть parts per million — частей на миллион. Таблица переносимости (при какой концентрации вам понадобится клей для ласт) есть в инструкции, но, с практической точки зрения – любая концентрация, которую засечет такой детектор (от 25 РРМ) требует незамедлительной реакции пользователя – чтобы понять, откуда угар.


Там же расположен индикатор заряда батарей. Сами батареи скрываются сзади, под крышкой отсека, одновременно являющейся крепежным (на стену) элементом:


Пластиковая панелька прикручивается к стене двумя шурупами, и на нее пристегивается само устройство.


Батарейки в отcеке подпружинены специальными пластиковыми упорами, так что при снятии прибора с основания так и норовят выпрыгнуть и раскатиться по углам.


Если устройство разобрать, то виден электрохимический сенсор:


Это элемент, который реагирует на химический состав воздуха изменением электропроводимости. Молекулы СО вступают в электрохимическую реакцию на электроде и позволяют использовать прямую линейную зависимость тока от концентрации измеряемого компонента.

Черный кругляш с дыркой – пьезокричалка PT-3534FP, 105dBA, от 2900Hz до 3900Hz. Чертовски громкая штука с редкостно противным звуком – разбудит с гарантией.

С обратной стороны платы две микросхемы:


Одна из них — HT16218, контроллер LCD-индикатора, а вторая так залачена, что я не разобрал.

Вставил баклажку горловиной в выхлопную трубу, положил в нее прибор и завел двигатель. Холодный мотор выплюнул на старте столько СО, что детектор завопил моментально, показав ПДК. По мере прогрева показания снизились, но все равно – дышать из этой баклажки определенно не стоит…


В общем, проверка показала, что устройство работоспособно, и оно торжественно заняло свое место в доме:


(Круглая штука рядом – детектор дыма, что тоже не лишнее при наличии печки). Поскольку СО легче воздуха, то размещать детектор лучше повыше, но не у самого потолка:


Выводы:
Для тех, у кого дом, как мой, топится печкой – реальный мастхэв. Возможно, эта штука никогда в жизни не сработает, но единственное ее срабатывание спасет жизнь всем, кто в доме. То же самое – закрытые камины с дверцами. За это определенно стоит отдать 2950 рублей – и пусть себе висит. При токе покоя 80мкА батареек хватит надолго.

Также весьма рекомендую всем любителям повозиться в гараже – там вероятность надышаться СО еще больше. Правда, к сожалению, в характеристиках не указан температурный диапазон работы детектора. Предполагаю, что при минусовых температурах электрохимический датчик может работать некорректно, да и батарейки не любят морозов. Так что, в неотапливаемом гараже зимой толку от него будет немного… Впрочем, и желающих греметь ключами на морозе тоже не легион. Купить можно здесь.



Выше — схематическое представление датчика и схема делителя, где Н – спираль нагрева (33 Ом – около 150 мА, токи великоваты для поделок с контроллерами, нужно учесть при проектировании схемы питания), АВ – выводы чувствительного элемента со сменным сопротивлением в зависимости от концентрации газа, RL – второй резистор делителя, рекомендуемый даташитом – 20 кОм.

Преобразование значений АЦП в ppm

На выходах делителя АЦП мы снимаем значение напряжения (Uadc) исходя из которого можем рассчитать сопротивление датчика Rs (зная номинал второго резистора делителя RL), т.е. определить, что именно нам передает датчик:


Имея значение Rs мы уже можем определить концентрацию газа по графику из даташита. Для определения концентрации используется нехитрое соотношение Rs/Ro. Ro в данном случае – сопротивление элемента датчика при концентрации детектируемого газа 1000 ppm.


На данном этапе, благодаря АЦП и формуле, мы знаем только значение текущего сопротивления (Rs) от которого будем отталкиваться. Будем считать, что мы замеряли его в чистом (от детектируемых газов) воздухе, при калибровочной температуре и влажности (по даташиту 20С, 65%). Немного позже будет интересный комментарий по поводу влажности при которой проводится калибровка.

Таким образом опорное значение Ro для датчика MQ-4 считаем:

Расчет реальной концентрации газа немного осложняется кривизной графика, и отсутствием внятных контрольных точек, по которым этот график можно откорректировать. Также проблема в низком расширении изображения, из-за чего приходиться по-пиксельно определять контрольные точки.

Для уточнения расчетов наиболее наглядные значения разнесены на сетку координат. По контрольным точкам определена функция зависимости показателей ppm от Rs/Ro:

График функции ограничен чувствительностью датчика 400…10000 ppm. Детектируемые значения в разных даташитах (Winsen/Hanwei) указаны начиная от 200 и 400 ppm, для функции взяты гарантированные 400. Уточненный график зависимости ppm от Rs/Ro, где x = ppm/1000; y= (Rs/Ro)*10:


Построенный график соответствует функции:



Немного о температурной компенсации

Исходя из следующего графика даташита известно, что в зависимости от среды, в которой используется датчик, показания отклоняются от действительных:


Согласно даташиту, типичное значение влажности среды в которой работает прибор = 65%. Волнует несоответствие значений влажности в графике RsRo/ppm (из которого получаем значение ppm) и RsRo/Temp (из которого получаем значение погрешности). В графиках указано значение Rs/Ro = 1 при ppm=1000 для температуры 20оС, но в разных случаях: влажности 33% и 65%. Это достаточно большая разница. Вероятно, график температурной компенсации основан на экспериментах, которые проводились именно при влажности 33%. Это нужно будет учесть при коррекции или калибровке.

Для более точного определения зависимости показателей от окружающей среды, также был построен график функции, датчик ограничен температурным диапазоном -10 оС … +50 оС (x=TEMP/10; y=RsRo(error) * 100):


График соответствует функции:

Важное замечание: все это применяется, если калибровка проведена в чистом воздухе при влажности 33% и температуре 20 градусов.

Значение корректировки RsRo(error) которое нужно будет добавить к значениям RsRo для компенсации влияния среды, можно рассчитать по формуле:


Поскольку мы будем калибровать датчик в своей среде, которая не будет соответствовать требованиям даташита (20С/33%), можно добавить выравнивание функции определения RsRo(error) для компенсации среды калибровки:


В этом случае график смещается по Y на разницу влажности калибровки – тут все просто. Немного хуже обстоят дела со смещением по X: простое перемещение будет давать погрешность на кривизну. Если не проводить калибровку в крайних температура, а все же в приближенных к комнатной, эта погрешность не будет значительной.

Что касается реальной зависимости, то пробы датчика в разных условиях показали, что сопротивление действительно наглядно изменяется в зависимости от температуры, а вот влажность в некоторых случаях вовсе не оказывала влияния.

Учитывая точность и цену датчика, — этот блок излишний.

Для расчета уже компенсированного значения:


Переносим теорию в микроконтроллер

Для проверки датчика использован микроконтроллер STM32F407VET и библиотека HAL, значения для корректировки поступали с датчика BME280. В заголовочном файле определяем некоторые постоянные значения для нашего сетапа.

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

Рисунок 1 Как работает датчик газа/дыма MQ-2? И его взаимодействие с Arduino

Рисунок 1 – Как работает датчик газа/дыма MQ-2? И его взаимодействие с Arduino

Что такое датчик газа MQ-2?

MQ-2 является одним из наиболее часто используемых датчиков газа из серии датчиков MQ. Это датчик газа типа металл-оксид-полупроводник (МОП, MOS), также известный как химрезистор (химический резистор), поскольку обнаружение основано на изменении сопротивления чувствительного материала, когда газ вступает в контакт с этим материалом. Используя простую цепь делителя напряжения, можно измерить концентрацию газа.

Рисунок 2 Датчик газа MQ-2

Рисунок 2 – Датчик газа MQ-2

Датчик газа MQ-2 работает при постоянном напряжении 5 В и потребляет около 800 мВт. Он может обнаруживать концентрации LPG (сжиженного нефтяного газа), дыма, алкоголя, пропана, водорода, метана и угарного газа от 200 до 10000 ppm (миллионных долей).

Чему равен 1 ppm?

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

Миллионная доля (сокращенно ppm) – это соотношение одного газа к другому. Например, 1000 ppm CO означает, что если бы вы могли сосчитать миллион молекул газа, 1000 из них были бы моноокисью углерода, а 999 000 молекул – какими-то другими газами.

Вот полный список технических характеристик:

Технические характеристика датчика газа MQ-2
Рабочее напряжение5 В
Сопротивление нагрузки20 кОм
Сопротивление нагревателя33 Ом ± 5%
Потребляемая мощность
Сопротивление чувствительности10 кОм - 60 кОм
Измерение концентрации200 - 10000 ppm
Время разогреваболее 24 часов

Для более подробной информации, пожалуйста, обратитесь техническому описанию.

Совет

Датчик чувствителен к нескольким газам – но не может сказать, какой из них он обнаружил! Это нормально; большинство датчиков газа такие. Таким образом, он лучше всего подходит для измерения изменений концентрации известного газа, а не для определения концентрация какого газа изменилась.

Внутренняя структура датчика газа MQ-2

Рисунок 3 Внешние компоненты датчика газа MQ-2

Рисунок 3 – Внешние компоненты датчика газа MQ-2

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

Рисунок 4 Внутренняя структура с чувствительным элементом и соединительными выводами

Рисунок 4 – Внутренняя структура с чувствительным элементом и соединительными выводами

Так выглядит датчик при удалении внешней сетки. Звездообразная структура образована из чувствительного элемента и шести соединительных ножек, которые выходят за пределы бакелитового основания. Из шести два вывода (H) отвечают за нагрев чувствительного элемента и соединены через катушку из никель-хромовой проволоки, хорошо известного проводящего сплава.

Остальные четыре вывода (A и B), отвечающие за выходные сигналы, подключены с использованием платиновых проводов. Эти провода соединены с корпусом чувствительного элемента и передают небольшие изменения тока, который проходит через чувствительный элемент.

Рисунок 5 Чувствительный элемент – оксид алюминия на керамическом основании с покрытием из диоксида олова

Рисунок 5 – Чувствительный элемент – керамика на основе оксида алюминия с покрытием из диоксида олова

Трубчатый чувствительный элемент изготовлен из керамики на основе оксида алюминия (Al2O3) и покрыт диоксидом олова (SnO2). Диоксид олова здесь является наиболее важным материалом, будучи чувствительным к горючим газам. Керамическая подложка просто увеличивает эффективность нагрева и обеспечивает постоянное нагревание площади датчика до рабочей температуры.

Рисунок 6 Внутренняя структура чувствительного элемента датчика газа MQ-2

Рисунок 6 – Внутренняя структура чувствительного элемента датчика газа MQ-2

Итак, никель-хромовая катушка и керамика на основе оксида алюминия образуют систему подогрева; в то время как платиновые проволоки и покрытие из диоксида олова образуют сенсорную систему.

Как работает датчик газа?

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

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

Обзор аппаратного обеспечения – модуль датчика газа MQ-2

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

Рисунок 8 Модуль датчика газа MQ-2

Рисунок 8 – Модуль датчика газа MQ-2

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

Рисунок 9 – Выходной сигнал модуля датчика газа MQ-2

Аналоговый сигнал от датчика газа MQ-2 поступает на высокоточный компаратор LM393 (впаян в нижней стороне модуля) для оцифровки. Рядом с компаратором имеется небольшой потенциометр, который можно покрутить, чтобы отрегулировать чувствительность датчика. Вы можете использовать его для регулировки концентрации газа, при которой датчик его обнаруживает.

Калибровка модуля датчика газа MQ-2

Чтобы откалибровать датчик газа, вы можете держать датчик газа рядом с дымом/газом, который вы хотите обнаруживать, и поворачивать потенциометр, пока на модуле не начнет светиться красный светодиод. Поворачивайте потенциометр по часовой стрелке, чтобы увеличить чувствительность, или против часовой стрелки, чтобы уменьшить чувствительность.

Рисунок 10 Потенциометр регулировки чувствительности модуля датчика газа MQ-2

Рисунок 10 – Потенциометр регулировки чувствительности модуля датчика газа MQ-2

Компаратор на модуле постоянно проверяет, достиг ли аналоговый выходной сигнал (A0) порогового значения, установленного потенциометром. Когда он пересекает пороговое значение, цифровой выход (D0) выдаст высокий логический уровень, и загорится светодиодный индикатор. Эта настройка очень полезна, когда вам нужно при достижении определенного порога запустить какое-то действие. Например, когда концентрация дыма пересекает пороговое значение, вы можете включить или выключить реле или дать команду включить вентиляцию или спринклерную систему пожаротушения.

Распиновка модуля датчика газа MQ-2

Теперь давайте посмотрим на распиновку.

  • 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

Рисунок 12 – Подключение модуля датчика газа MQ-2 к Arduino

Итак, теперь, когда мы подключили наш датчик газа, пришло время написать код и проверить его.

Код Arduino

Скетч начинается с определения вывода Arduino, к которому подключен аналоговый вывод датчика газа MQ-2. Переменная под названием sensorValue определена для хранения значения датчика.

В функции setup() мы инициализируем последовательную связь с ПК и ждем 20 секунд, чтобы дать датчику прогреться.

В функции loop() значение датчика считывается функцией analogRead() и отображается в мониторе последовательного порта.

Вывод в мониторе последовательного порта выглядит так:

Рисунок 13 Вывод в мониторе последовательного порта скетча для работы с модулем датчика газа MQ2

Рисунок 13 – Вывод в мониторе последовательного порта скетча для работы с модулем датчика газа MQ-2

Зачем было подключать "выходной вывод D0 на модуле к цифровому выводу 8 на Arduino" если вы его не используете?

Читайте также: