🛒
0 товар.
0 руб.
Логотип

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

☰
ИИ-консультант Wildberries OZON Яндекс Маркет
Поиск по сайту
Гугл таблица с ассортиментом

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

MQ-6, в отличие от более универсального MQ-2, чувствителен к пропану, бутану и изобутану — бытовому газу и аэрозолям. Показания выводятся на LCD1602 в реальном времени, а не просто включают зуммер по порогу.

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

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

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

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

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

  1. MQ-6: AO → A0, VCC → 5V, GND → GND (DOUT не используется).
  2. LCD1602 идёт с нераспаянным I2C-переходником — припаяйте его к контактам дисплея перед подключением.
  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);

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); // относительный уровень, не 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.println(raw);
  delay(500);
}
                

Библиотека LiquidCrystal_I2C ставится через Менеджер библиотек. Если дисплей не откликается — проверьте адрес I2C сканером (часто 0x27 или 0x3F).

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

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

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

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

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

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

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

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

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

Корзина

Поиск


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