Инструменты пользователя

Инструменты сайта


mq135

Описание работы с датчиком

Старт работы с датчиком представляет из себя следующее:

  1. Подключение
  2. Прогрев датчика - оставить работающим на сутки
  3. Калибровка - выйти на улицу и замерить им показатели на улице, после внести изменение в код скетча.

Пин D0 используется для дополнительного нагрева датчика, то есть для этой цели используется пины D0 и VCC. С пина A0 мы получаем данные.

После настройки датчика использовать финальный код!

Для работы понадобиться сторонняя библиотека TroykaMQ:

troykamq-master.zip

Схема подключения

Для полноценной работы пин D0 необходимо подключить к пину 11 на Arduino, для нагрева датчика. При первом использовании рекомендуется оставить датчик включенным на сутки, для его калибровки. После вынести на улицу и записать значения в код.

Код для калибровки

// библиотека для работы с датчиками MQ (Troyka-модуль)
#include <TroykaMQ.h>
 
// имя для пина, к которому подключен датчик
#define PIN_MQ135         A0
// имя для пина, к которому подключен нагреватель датчика
#define PIN_MQ135_HEATER  11
 
// создаём объект для работы с датчиком
// и передаём ему номер пина выходного сигнала и нагревателя
MQ135 mq135(PIN_MQ135);
 
void setup() {
  // открываем последовательный порт
  Serial.begin(9600);
  // включаем нагреватель
  mq135.heaterPwrHigh();
  Serial.println("Heated sensor");
}
 
void loop()
{
  // если прошёл интервал нагрева датчика
  // и калибровка не была совершена
  if (!mq135.isCalibrated() && mq135.heatingCompleted()) {
    // выполняем калибровку датчика на чистом воздухе
    mq135.calibrate();
    // если известно сопротивление датчика на чистом воздухе
    // можно его указать вручную, допустим 160
    // mq135.calibrate(160);
    // выводим сопротивление датчика в чистом воздухе (Ro) в serial-порт
    Serial.print("Ro = ");
    Serial.println(mq135.getRo());
  }
  // если прошёл интевал нагрева датчика
  // и калибровка была совершена
  if (mq135.isCalibrated() && mq135.heatingCompleted()) {
    // выводим отношения текущего сопротивление датчика
    // к сопротивлению датчика в чистом воздухе (Rs/Ro)
    Serial.print("Ratio: ");
    Serial.print(mq135.readRatio());
    // выводим значения газов в ppm
    Serial.print("\tCO2: ");
    Serial.print(mq135.readCO2());
    Serial.println(" ppm");
    delay(100);
  }
}

Код для работы

// библиотека для работы с датчиками MQ (Troyka-модуль)
#include <TroykaMQ.h>
 
// имя для пина, к которому подключен датчик
#define PIN_MQ135  A0
// создаём объект для работы с датчиком и передаём ему номер пина
MQ135 mq135(PIN_MQ135);
 
void setup()
{
  // открываем последовательный порт
  Serial.begin(9600);
  // перед калибровкой датчика прогрейте его 60 секунд
  // выполняем калибровку датчика на чистом воздухе
  mq135.calibrate();
  // при знании сопративления датчика на чистом воздухе
  // можно его указать вручную, допустим 160
  // mq135.calibrate(160);
  // выводим сопротивление датчика в чистом воздухе (Ro) в serial-порт
  Serial.print("Ro = ");
  Serial.println(mq135.getRo());
}
 
void loop()
{
  // выводим отношения текущего сопротивление датчика
  // к сопротивлению датчика в чистом воздухе (Rs/Ro)
  Serial.print("Ratio: ");
  Serial.print(mq135.readRatio());
  // выводим значения газов в ppm
  Serial.print("\tCO2: ");
  Serial.print(mq135.readCO2());
  Serial.println(" ppm");
  delay(100);
}
mq135.txt · Последнее изменение: 2020/12/16 22:50 — admin

Инструменты страницы