Гаражный датчик дыма я собрал за вечер, повесил на полку — и чуть не выкинул на следующий день. Первые десять минут он показывал то 80, то 150, то 240, хотя в гараже пахло ровно тем же, чем и всегда: маслом и старым деревом. Я грешил на брак, перепаивал провода, перезаливал скетч — пока не заметил, что сенсор тёплый, как кружка с чаем. Не брак: нагреватель выходил на режим, и вся моя «драма» укладывалась в первые три минуты работы. Проверка на второй плате дала ту же картину — значит, это система, а не случайность, и её надо просто учитывать.
MQ-2 — датчик широкого спектра, и это лучше усвоить заранее: он не различает, чем именно пахнет воздух. Дым, пропан, бытовой газ, пары спирта — всё это он превращает в одно число на аналоговом входе. В этом уроке подключим модуль по трём проводам, разберёмся, зачем нужен четвёртый, и посмотрим, что реально показывает analogRead в покое и при задымлении.
Правило, которое я вывел из того гаражного вечера: включил — жди. Первые две-три минуты значения ползут вверх сами, и делать из них выводы бессмысленно. Дальше кривая успокаивается, и начинается нормальная работа с порогами, графиками и калибровкой — все они из следующих уроков и все начинаются после этого ожидания.
Три провода, четвёртый по желанию и очень голодная спираль
Обязательная схема умещается в три провода: VCC к 5 В, GND к земле, AOUT к A0. Аналоговый вход читает модуль так же, как ручку потенциометра — через урок про analogRead и потенциометр: десять бит, 1024 ступени, ноль — «земля», максимум — «питание». Четвёртый контакт DOUT — цифровой выход компаратора LM393 прямо на плате модуля: подстроечным резистором задают порог, и когда концентрация его пересекает, DOUT переключается. Удобно, если хочется зажечь светодиод без всякого скетча, но порог при этом настраивается вслепую, без чисел в мониторе. На большинстве плат DOUT при превышении порога падает в LOW — это удобно для прямого входа реле, но проверьте свой модуль: у разных производителей «пахнет» означает разный уровень.
Внутри модуля — нагреватель: спираль, которая разогревает чувствительный слой до рабочей температуры. При 5 В она ест порядка 150 мА — это почти треть типичного USB-порта, который отдаёт 500 мА на всё про всё, включая саму плату. Корпус сенсора при работе тёплый — так и должно быть, холодный датчик как раз подозрителен. Требования датчиков к питанию и что бывает при просадке — уже разбирали в уроке про подключение DHT11, правила те же. Отдельный совет: не сажайте MQ-2 на один блок питания с моторами и сервоприводами — рывки их тока просаживают цепь, и фон датчика дёргается вместе с ними.
Про DOUT честное мнение из практики: я его почти не использую. Винт крутится наугад, и после первой калибровки через график мне стало тесно. Но для быстрой проверки «жив ли модуль» он хорош: покрутил подстроечник — DOUT щёлкнул — компаратор на плате работает, значит, дело за сенсором и скетчем.
| Вывод модуля | Куда на Uno | Зачем |
|---|---|---|
| VCC | 5 В | питание сенсора и нагревателя |
| GND | GND | общая земля с платой |
| AOUT | A0 | аналоговый уровень 0-1023 — главный выход |
| DOUT | любой цифровой пин | порог компаратора LM393, задаётся винтом |
| Подстроечник | на плате | порог срабатывания DOUT без скетча |
Что показывает analogRead? В покое, на чистом воздухе, типичный экземпляр живёт в диапазоне 100-200 — точное число зависит от конкретного сенсора и нагрузочного резистора на плате. Дым, пропан, метан, спирт толкают значение вверх: поднесённая зажигалка без огня у меня поднимала уровень до 800-1000 за пару секунд. Между этими полюсами — чистый воздух и густой дым — и живёт весь пороговый контроль из следующего урока; промежуточные зоны — территория калибровки.
Широкий спектр — достоинство и слепота одновременно. Датчик честно скажет «в воздухе что-то горючее», но не ответит, дым это или пропан: реакция на оба газа почти одинаковая. Отдельная тонкость — окружение: сенсор реагирует на влажность и температуру, а конденсат на керамике заставляет показания врать, так что сырая ванная — не его место. Мой экземпляр после ночи в сыром подвале показывал фон на треть выше обычного и возвращался к норме полчаса в сухой комнате — держите такие провалы в голове, прежде чем списывать сенсор в брак.
Числа вниз тоже умеют диагностику. Уровень стабильно ниже 80-90 при 5 В питания — проверяйте, не перепутан ли AOUT с другим проводом. Мёртвые 0 или 1023 без реакции на спирт — обрыв или короткое замыкание. И помните: показания зависят от напряжения питания, поэтому 5 В на VCC — не пожелание, а условие калибровки: те же цифры на 4 В будут другими. Рабочий диапазон сигнала широк, но не бесконечен, и края диапазона — это всегда проводка, а не газ.
Первый скетч: уровень в мониторе
// MQ-2: чтение уровня и словесная оценка по границам const int PIN_GAS = A0;const int GRAN_PODOZRITELNO = 300; // выше — что-то пахнетconst int GRAN_DYM = 700; // выше — сильное задымление void setup() { Serial.begin(9600); Serial.println("MQ-2 start: zhdyom 2-3 minuty progreva");} void loop() { int mq = analogRead(PIN_GAS); Serial.print("mq="); Serial.println(mq); if (mq < GRAN_PODOZRITELNO) { Serial.println("vozduh chistyj"); } else if (mq < GRAN_DYM) { Serial.println("pahnet: ishchi istochnik"); } else { Serial.println("dym: dejstvuj"); } delay(500);}Смотришь в монитор и читаешь воздух: mq=140 в покое, mq=650 после зажигалки без огня, снова mq=160 через полминуты — вот и вся телеметрия в чистом виде. Печатаем парами имя=значение не ради красоты: такой формат ложится в Serial Plotter одной аккуратной кривой, как показано в уроке про плоттер с датчиками DHT, а в следующем уроке мы на этом графике будем калибровать сам MQ-2. Формат честный: одно имя, одно значение, одна строка — никаких украшений вокруг.
Интервал печати выбирайте в 200-500 мс: чаще не нужно, сенсор физически не успевает за реакцией быстрее, а Serial на 9600 бод тратит на каждую строку около миллисекунды за символ. Про паузы между опросами и почему частота чтения — это компромисс — урок про интервал опроса датчиков. Для спиртового теста я сужаю интервал до 200 мс: печать раз в полсекунды на быстрых всплесках глотает пик.
Если монитор вместо чисел показывает кашу — начните с урока про первый запуск Serial Monitor: скорость 9600, конец строки NL/CR. Каша в мониторе — это скорость порта, а не датчик. И держите в голове: монитору всё равно, из какого датчика цифры — если плат на столе несколько, проверьте, что COM-порт тот самый.
Чего ждать в первые полчаса
Тупик, в который я упёрся в гараже, типовой и повторяется у каждого. Первые минуты значения ползут: нагреватель выходит на режим, чувствительный слой меняет сопротивление буквально по градусам, и уровень гуляет на десятки единиц. Через две-три минуты кривая успокаивается и дальше держится в пределах десятка-другого. У моего экземпляра переход выглядел так: старт с 240, минута подъёма, спад к 150 и полка — и все десять минут до неё порог 300 лежал слишком близко. До этого момента любые пороги — пальцем в небо.
Даташит добавляет и дальнюю перспективу: для точной калибровки сенсору рекомендуют 24-48 часов непрерывной работы — так называемый прогар стабилизирует чувствительный слой. Для порога на глаз хватит и получаса, но если планируете пересчёт в ppm из следующего урока — часам доверия мало, оставьте датчик включённым на сутки и заодно проверьте, не греется ли проводка. Мой рекорд терпения — датчик, который прогревался на подоконнике двое суток до калибровки по баллону; порог на глаз обошёлся бы без этой церемонии.
В симуляторе этого прогрева нет — там датчик честный с первой секунды, и это удобно для изучения логики скетча. На живой плате держите ритуал: включили питание, сходили за чаем, вернулись — и только тогда смотрите цифры. Показания первых минут — не тревога и не событие, а шум выхода на режим. Привычка ждать выручает и на любой другой железке с прогревом — от датчика газа до дальномера с прогревающейся оптикой.
- 1. Куда подключается аналоговый выход AOUT модуля MQ-2?
- 2. Сколько тока потребляет нагреватель MQ-2 при 5 В?
- 3. Какой уровень обычно даёт analogRead в покое на чистом воздухе?
- 4. Что делает выход DOUT модуля с подстроечником?
- 5. Через какое время после включения показания MQ-2 пригодны для порогов?
- AOUT идёт на A0 и читается analogRead: покой 100-200, дым и горючие газы толкают до 800-1000.
- Нагреватель ест около 150 мА при 5 В: USB-порт на грани, стационарный датчик — от отдельного блока питания.
- DOUT с подстроечником — заводской компаратор LM393: удобно для индикации без скетча, но порог настраивается вслепую.
- Первые 2-3 минуты значения плывут — это выход нагревателя на режим, а не поломка.
- Для точной калибровки рекомендован прогар 24-48 часов; для порога на глаз хватает получаса работы.
Частые вопросы по теме урока
- Куда подключается аналоговый выход AOUT модуля MQ-2?
- AOUT — аналоговый уровень 0-1023, его читает только АЦП. Выводы 3.3V и VIN — цепи питания, пин 13 — цифровой. к A0 — аналоговому входу
- Сколько тока потребляет нагреватель MQ-2 при 5 В?
- Нагреватель — самая прожорливая часть модуля: порядка 150 мА при 5 В. Поэтому USB-порт с реле и зуммером на борту уже на грани. около 150 мА
- Какой уровень обычно даёт analogRead в покое на чистом воздухе?
- Чистый воздух у типичного экземпляра — 100-200; точное число зависит от конкретного сенсора и нагрузочного резистора платы. Замер на своём модуле лучше любых таблиц: включите скетч и посмотрите свою полку. 100-200
- Что делает выход DOUT модуля с подстроечником?
- DOUT — выход компаратора LM393 на плате: винтом задают порог, при его пересечении выход переключается. Аналоговый уровень при этом никуда не девается. переключается, когда концентрация пересекает порог из подстроечника
- Через какое время после включения показания MQ-2 пригодны для порогов?
- Первые 2-3 минуты нагреватель выходит на режим и значения плывут. Для точной калибровки даташит рекомендует 24-48 часов прогара. через 2-3 минуты