Гуляя по каталогам китайских продавцов на 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.1 = Output Config Portb.2 = Output Config Portb.3 = Output Config Portb.4 = 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.
Тестовая схема собранная на макетке
Припаянный датчик
Для испытаний взял обычную газовую зажигалку, в ней в качестве горючего используется пропан, который также хорошо улавливается сенсором.
Скомпилированная прошивка
Даташит на датчик MQ-4
|