🛒
0 товаров
0 руб.

Интернет-магазин «Неглупый Дом»


🧯 Проект: анализатор утечки бытового газа на MQ-6 с выводом уровня на LCD1602

MQ-6 — датчик из семейства MQ, но в отличие от более универсального MQ-2 (дым, горючие газы общего назначения) он специально чувствителен к пропану, бутану и изобутану — то есть к бытовому газу, баллонам и аэрозолям. В этом проекте показания сенсора выводятся в реальном времени на LCD1602 через нераспаянный I2C-переходник, а не просто включают зуммер по порогу, как в типичных газовых сигнализациях.

Как это работает

MQ-6, как и остальные датчики серии MQ, — это резистивный химический сенсор: внутри находится чувствительный слой оксида металла, сопротивление которого падает при контакте с молекулами целевых газов. Arduino не измеряет сопротивление напрямую, а считывает напряжение на делителе, в который включён сенсор — поэтому значение `analogRead()` растёт при увеличении концентрации пропана/бутана в воздухе вокруг датчика, но само по себе число от 0 до 1023 — это относительный уровень, а не готовая концентрация в ppm. Для точного перевода в ppm нужна калибровка по известной концентрации газа с построением кривой по паспорту датчика, поэтому в этом проекте показания честно представлены как сравнительный индикатор ("выше/ниже обычного фона"), а не как точный газоанализатор.

Важная особенность датчиков MQ — встроенный нагревательный элемент, которому требуется время на прогрев: первые секунды и минуты после включения показания нестабильны и завышены, а полная стабилизация чувствительности у датчиков этого семейства обычно происходит ощутимо дольше (производители указывают десятки часов "прожига" для самой точной работы, но для демонстрации принципа достаточно нескольких минут прогрева перед тем, как ориентироваться на показания).

Пошаговая сборка

Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, которые указаны ниже — сориентируйтесь по названиям контактов на своей плате.

  1. MQ-6: аналоговый выход AO → A0, VCC → 5V, GND → GND (цифровой выход DOUT в этом проекте не используется).
  2. LCD1602 идёт в комплекте с нераспаянным I2C-переходником — перед подключением его нужно самостоятельно припаять к контактам дисплея (обычно 4 вывода подряд: GND, VCC, SDA, SCL), иначе экран работать не будет.
  3. После пайки переходника: SDA → A4, SCL → A5, VCC → 5V, GND → GND.
  4. На плате переходника есть синий подстроечный резистор контрастности — если экран горит, но символов не видно, подкрутите его.
  5. Дайте датчику прогреться минимум несколько минут после первого включения, прежде чем ориентироваться на показания.

Скетч

// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая
// модель, а не специализированный кодер, и могу что-то упустить. Основу
// и идею я накидал, но проверьте под свою схему.

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

const int MQ6_PIN = A0;
LiquidCrystal_I2C lcd(0x27, 16, 2); // адрес на шине I2C может отличаться, проверьте скетчем-сканером I2C

void setup() {
  Serial.begin(9600);
  lcd.init();
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("MQ-6 прогрев...");
  delay(2000); // символический прогрев для демонстрации — для точных показаний нужно больше времени
  lcd.clear();
}

void loop() {
  int raw = analogRead(MQ6_PIN); // 0-1023, относительный уровень, НЕ калиброванный ppm

  lcd.setCursor(0, 0);
  lcd.print("Gas lvl: ");
  lcd.print(raw);
  lcd.print("    "); // стираем "хвост" от более длинного числа на предыдущем кадре

  // Простая текстовая шкала на второй строке: число делений пропорционально уровню
  int bars = map(raw, 0, 1023, 0, 16);
  lcd.setCursor(0, 1);
  for (int i = 0; i < 16; i++) {
    lcd.print(i < bars ? "#" : "-");
  }

  Serial.print("MQ-6 raw: ");
  Serial.println(raw);

  delay(500);
}

Библиотека LiquidCrystal_I2C ставится через Менеджер библиотек Arduino IDE. Если дисплей не откликается — проверьте адрес на шине I2C отдельным скетчем-сканером (часто это 0x27 или 0x3F), а если "скачут" значения газа — дайте датчику больше времени на прогрев в чистом воздухе перед использованием.

Частые проблемы

Как улучшить проект

Товары по теме

Ещё модули для Arduino: Электронные модули.

← 🔀 опрос нескольких аналоговых датчиков через…🌡️ термостат на LM75 с управлением реле для в… →

🎁 Купить весь комплект со скидкой 10%

Все 2 товара сразу в корзину: 348 ₽ 313 ₽ (экономия 35 ₽)

Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.

Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.

Корзина


Поиск



Пример: понижающий или DC-DC или mini360 или aw-023 или арт. OZ/WB/YA