Подключение датчика газа MQ-4 к микроконтроллеру

 Гуляя по каталогам китайских продавцов на E-bay случайно наткнулся на датчик газа MQ-4. Этот датчик предназначен для определения концентрации метана (CH4) в воздухе. А так как этот газ является основным компонентом бытового газа, иметь подобный датчик весьма полезно – можно собрать детектор утечки газа или что-нибудь подобное. В общем интересная штучка, особенно радует цена в $4,5 и аналоговый интерфейс общения  – проблем с подключением не возникнет.

 Для подключения датчика под его пузом имеются 6 выводов, 4 из которых дублируют друг друга. Поэтому для подключения используется всего 4 вывода: 

Н-Н это выводы нагревателя. К нему подводится напряжение 5 вольт, причем неважно постоянное или переменное.

А-А и В-В это электроды. Сигнал можно снимать с любого из них. Например, на схеме ниже питание подведено к A-A, а сигнал снимается с электрода B-B. Но можно и наоборот – запитывать к B-B, а сигнал снимать с А-А. Работать будет в обоих случаях. В этом сенсор чем-то похож на вакуумную электронную лампу 

 Резистором RL настраивается чувствительность датчика. Рекомендуется ставить в диапазоне 10к. Чувствительность датчика, если верить документации составляет от 200 до 10000 ppm (что это?)

  В даташите на MQ-4 приведен график, по которому видно, что помимо метана, датчик очень хорошо реагирует на пропан (LPG), и в меньшей степени на газообразный водород, угарный газ и пары алкоголя 

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

 MQ-3 – сенсор паров алкоголя

 MQ-5 и MQ-6 – предназначены для обнаружения пропана/бутана MQ-7 – чувствителен к угарному газу (имхо, заслуживает отдельного внимания) MQ-8 – специализируется по водороду H2 и т.д. список можно дополнить еще парой-тройкой датчиков, все они легко гуглятся.

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

 Датчик подключается к ADC0 (PortC.0). В качестве опорного напряжения АЦП используется внутренний ИОН на 2,54 вольта. Поэтому на резисторах R5-R6 собран делитель напряжения, чтобы на вход АЦП попадало не больше 2,5 вольт. Резистор R7 дополнительная подтяжка к земле согласно схеме из даташита, его я взял 3,3 килоома – что было под рукой.

Набросал небольшую программку для ATmega8, частота тактирования 1 МГц

$regfile = “m8def.dat”

$crystal = 1000000

$baud = 1200

‘конфигурация АЦП

Config Adc = Single , Prescaler = Auto , Reference = Internal

‘подключение светодиодов

Config Portb.= Output

Config Portb.= Output

Config Portb.= Output

Config Portb.= Output

Dim W As Integer                        ‘для хранения значения полученного с АЦП

Do

‘запуск и считывание показаний с датчика

 Start Adc

 W = Getadc(0)                          ‘датчик подключён к PortC.0

‘в зависимости от значения показаний зажгем светодиоды индикации

If W < 700 Then

 Portb = &B00000000                     ‘значение меньше порога срабатывания, все гуд

End If

If W > 700 And W < 750 Then             ‘низкий уровень загазованности

 Portb = &B00000010

End If

If W > 750 And W < 800 Then             ‘средний уровень

 Portb = &B00000110

End If

If W > 850 And W < 900 Then             ‘загазовано чуть меньше чем полностью

 Portb = &B00001110

End If

If W > 900 Then                         ‘караул!

 Portb = &B00011110

End If

Print W                                 ‘отсылаем показания в UART

Wait 1

Loop

End

 Показания с датчика будут считываться с частотой 1 раз в секунду. И в зависимости от показаний будет гореть определенное количество светодиодов или не будут гореть вовсе. Значения порогов я взял после пробного испытания и вывода показаний в UART. 

 Тестовая схема собранная на макетке

Припаянный датчик

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

 А вот как все это работает:

 После подачи питания, датчику необходимо время чтобы выйти на рабочий режим, примерно 10-15 секунд. Это время нужно чтобы нагреватель внутри датчика поднял температуру до необходимого значения. Кстати, сам датчик во время работы тоже не слабо нагревается, по ощущениям градусов до 50-и. Так что без паники, это норма 🙂

Скомпилированная прошивка

Даташит на датчик MQ-4


Взято с: avrproject.ru


Категория: AVR
Метки:

Написать коментарий

*
= 3 + 8

Добавить изображение

Последние статьи