Датчик угарного газа MQ7: характеристики и работа с Arduino

Что измеряет датчик MQ7, почему его нужно прогревать и как подключить модуль к Arduino для индикации превышения порога.
Зачем нужен датчик CO
Угарный газ образуется, когда углеродное топливо сгорает при нехватке кислорода: вместо углекислого газа в воздух попадает CO. Он очень ядовит, при этом не имеет ни цвета, ни запаха, так что заметить его можно лишь по косвенным симптомам отравления. Датчик MQ7 рассчитан именно на этот газ и широко используется в схемах автоматизации.

Как устроен сенсор
Главная часть MQ7 — нагревательный элемент. За счёт нагрева идёт химическая реакция, по которой и определяется концентрация газа, поэтому в работе корпус сенсора горячий. Аналоговый сигнал на выходе пропорционален содержанию CO.
Новому датчику требуется однократный прогрев: его оставляют включённым на 48 часов. После этого при каждом включении показания стабилизируются примерно за минуту. На результат влияют температура и влажность воздуха, так что для точных измерений в меняющихся условиях потребуется компенсация этих параметров.
Технические характеристики
| Напряжение питания | 5 В |
| Потребляемый ток | 160 мА |
| Диапазон чувствительности | 10–10000 ppm |
| Напряжение нагревателя | 1,5–5 В |
| Время накала нагревателя | 60–90 с |
| Сопротивление нагревателя | 31 Ом |
| Мощность нагревателя | 350 мВт |
| Сопротивление датчика | 2–20 кОм |
| Рабочая температура | от −10 до +50 °C |
| Влажность | до 95 % RH |
| Габариты модуля | 22 × 22 × 17 мм |
| Вес | 5 г |
Единица ppm означает «частей на миллион»: 1 ppm равен 0,0001 %. Для сравнения, в выхлопе бензинового двигателя доля CO может доходить до 3 %, то есть 30 000 ppm.
Выводы модуля
На плате четыре контакта с шагом 2,54 мм: VCC (питание 5 В), GND (земля), A0 и D0.

A0 — аналоговый выход, его соединяют с аналоговым входом Arduino. D0 — цифровой выход: он переходит в состояние HIGH, когда концентрация газа превышает заданный порог. Порог подстраивается резистором на плате, хотя заводская калибровка у модуля уже есть.
Пример со светодиодом
В простом проекте светодиод сигнализирует о превышении уровня CO. Понадобятся плата Arduino, макетная плата, датчик MQ7, светодиод, резистор 220 Ом и провода.

Аналоговый выход датчика подключён к входу A0, светодиод — к выводу 8. При запуске скетч выводит в порт сообщение о прогреве и ждёт 60 секунд, после чего начинает измерения. Каждые 5 секунд значение считывается через analogRead и сравнивается с порогом highLevel, равным 150: при превышении светодиод загорается, иначе гаснет. Прочитанное значение отправляется в последовательный порт на скорости 9600.

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