Рубрики
Схемы на PIC

Подключение датчика газа MQ6 к микроконтроллеру PIC

Датчики газа серии MQ находят широкое применение в современной электронике. Они используются для измерения концентрации различных типов газов. Они могут применяться как в простейших детекторах дыма, так и в сложных промышленных системах проверки качества воздуха. В данной статье мы рассмотрим подключение датчика газа MQ6 к микроконтроллеру PIC и измерение с его помощью концентрации газа в единицах PPM (parts per million – частей на миллион). Измеренное значение PPM мы будем выводить на экран ЖК дисплея 16х2.

Модификации датчиков газа серии MQ представлены в таблице ниже. Как видите, их достаточно много и с их помощью можно измерять концентрации широкого спектра газов. В данной статье мы рассмотрим работу только с датчиком MQ6, который позволяет измерять концентрацию сжиженного нефтяного газа (LPG). Но используя тоже самое аппаратное обеспечение, вы по аналогии с материалом данной статьи сможете работать с другими датчиками газа серии MQ.

Датчик Что измеряет
MQ-2 метан, бутан, сжиженный нефтяной газ, дым
MQ-3 алкоголь, этанол, дым
MQ-4 метан, СПГ
MQ-5 природный газ, сжиженный нефтяной газ
MQ-6 сжиженный нефтяной газ, бутан
MQ-7 окись углерода
MQ-8 газообразный водород
MQ-9 окись углерода, горючие газы
MQ131 озон
MQ135 качество воздуха (бензол, алкоголь, дым)
MQ136 сероводородный газ
MQ137 аммиак
MQ138 бензол, толуол, алкоголь, ацетон, пропан, газообразный формальдегид, водород
MQ214 метан, природный газ
MQ216 природный газ, угольный газ
MQ303A алкоголь, этанол, дым
MQ306A сжиженный природный газ, бутановый газ
MQ307A окись углерода
MQ309A окись углерода, горючие газы
MG811 двуокись углерода (CO2)
AQ-104 качество воздуха

Также на нашем сайте мы рассматривали подключение различных датчиков газа к плате Arduino:

Необходимые компоненты

  1. Микроконтроллер PIC16F877A (купить на AliExpress).
  2. Датчик газа MQ6 (купить на AliExpress).
  3. Программатор PICkit 3 (купить на AliExpress).
  4. ЖК дисплей 16х2 (купить на AliExpress).
  5. Кварцевый генератор 20 МГц (купить на AliExpress).
  6. Конденсаторы 33 пФ (2шт.) (купить на AliExpress).
  7. Резисторы 1 кОм и 4,7 кОм (купить на AliExpress).
  8. Источник питания 5V.
  9. Макетная плата.
  10. Соединительные провода.

Датчик газа MQ6

На рисунках ниже показана распиновка датчика газа MQ6 и его внешний вид. На данных рисунках показан датчик газа MQ6 в виде модуля – подобное его исполнение облегчает его подключение к микроконтроллерам.

Контакт 1 датчика газа MQ6 – это VCC, контакт 2 – GND, контакт 3 – цифровой выход (уровень low при обнаружении газа), контакт 4 – аналоговый выход. Встроенный потенциометр (не RL) используется для регулировки чувствительности датчика. Резистор RL – это правый резистор выхода DOUT LED.

Все датчики газа серии MQ имеют в свое составе нагревательный элемент и чувствительное сопротивление (sensing resistance). Величина этого сопротивления изменяется в зависимости от концентрации обнаруживаемого газа, что и позволяет осуществлять измерение его концентрации. Во всех датчиках серии MQ используется логарифмический график для измерения концентрации газа в единицах PPM. Эти графики имеют различный вид в зависимости от соотношения сопротивлений RS и RO.

Как измерять концентрацию газа в PPM используя датчики газа серии MQ

RS – это значение чувствительного сопротивления в присутствии измеряемого газа, а RO – его значение в чистом воздухе, когда измеряемого газа в нем нет. На рисунке ниже представлен логарифмический график для определения концентрации измеряемого газа с помощью датчика MQ6. С помощью данного датчика можно измерять концентрацию сжиженного нефтяного газа (LPG) – он используется, к примеру, в зажигалках. При обнаружении датчиком MQ6 газа LPG значение его чувствительного сопротивления будет изменяться в зависимости от концентрации данного газа в воздухе.

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

На представленном выше рисунке кривая для газа LPG выделена темным синим цветом – нам необходимо будет построить именно ее. Координаты начальной точки этой кривой X и Y равны 200 и 2. Соответственно, для логарифмического масштаба (log200, log2) получаем (2.3, 0.30).

То есть в качестве первой необходимой нам точки выберем X1 и Y1 = (2.3, 0.30). Конец кривой это будет наша вторая точка. Аналогичным образом для логарифмического масштаба X2 и Y2 (log 10000, log0.4) получаем X2 и Y2 = (4, -0.40). Для определения коэффициента наклона используем следующую формулу:

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

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

Схема проекта

Схема подключения датчика газа MQ6 к микроконтроллеру PIC представлена на следующем рисунке.

В нашей схеме аналоговый контакт датчика газа MQ6 подключен к контакту RA0 микроконтроллера PIC, а цифровой контакт датчика – к контакту RD5 микроконтроллера. Если вы не очень уверенно себя чувствуете в вопросах использования аналого-цифрового преобразования (АЦП) в микроконтроллерах PIC, то рекомендуем прочитать соответствующую статью на нашем сайте.

Внешний вид собранной на макетной плате конструкции проекта показан на следующем рисунке.

Объяснение программы для микроконтроллера PIC

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

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

В следующей функции мы будем считывать аналоговые значения с датчика газа MQ6 и усреднять их чтобы получить значение Rs.

Следующая функция используется для расчета значения сопротивления из делителя напряжения и нагрузочного сопротивления.

В начале кода программы зададим значение нагрузочного сопротивления RL_VALUE.

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

Для построения этой кривой зададим определенные нами ранее ее параметры:

В основной функции нашей программы main мы будем измерять аналоговое значение на входе АЦП микроконтроллера PIC, рассчитывать PPM газа и выводить ее значение на экран ЖК дисплея.

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

Для тестирования работы датчика MQ6 в нашем проекте мы использовали зажигалку. В данной газовой зажигалке содержится газ LPG, при нажатии ее кнопки он высвобождается и попадает в окружающий воздух – его мы и обнаруживаем с помощью датчика.

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

Исходный код программы

Видео, демонстрирующее работу проекта

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

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