Как исправить ответ MQ135 с помощью Arduino Uno

Я начал простой проект по мониторингу качества воздуха, начав с простого измерения концентрации углекислого газа (CO2) с помощью датчика MQ135, работающего от Arduino Uno. Я выполнил простой код, приведенный ниже. Схема вывода-Vcc до 5 В, GND от датчика до GND UNO и вывод AO от MQ135 до A0 вывода UNO.

#define sensor A0
int gas, minvalue = 1000;
void setup()
{
  pinmode(sensor, INPUT);
  Serial.begin(9600);
}
void loop()
{
  gas = analogRead(sensor);
  if(gas <= minvalue)
  {
    minvalue = gas;
  }
  Serial.println(gas);
  delay(200);
}

Однако ответ, который я получаю, колеблется в диапазоне от 0 до 1023, ниже прилагается снимок экрана с последовательного плоттера.

В идеале реакция датчика должна быть стабильной, так как она была запущена в помещении с кондиционером. Я не могу точно определить проблему. Пожалуйста, помогите с этим.

, 👍-1

Обсуждение

Для аналогового типа датчика решающее значение имеет качество проводки. Если вы используете длинную проводку (длиной более 10 дюймов), проводка действует как антенна и принимает радиоволны и шумы. Так что было бы лучше, если бы вы показали нам настоящую проводку., @gbg


1 ответ


0

Я подозреваю (основываясь на вашем описании), что вы неправильно подключили датчик. Вам необходимо включить резистор (он же RL) для преобразования изменения сопротивления датчика газа в напряжение (в дополнение к раздельному питанию нагревателя). Смотрите прилагаемую схему из таблицы данных. Вы могли бы использовать фиксированный резистор ~20 К вместо RL и посмотреть, как это работает для вас.

Если вы просто подключите датчик к аналоговому входу без RL или +5, то вход будет по существу плавающим, и любые измерения будут бессмысленными.

Если этот датчик уже установлен на плате (как следует из A0), попробуйте проверить аналоговый выход с помощью вольтметра/DVM, чтобы убедиться, что вы получаете какое-то разумное значение. Откройте бутылку спирта, жидкость для снятия лака или что-то подобное поблизости и посмотрите, не изменится ли напряжение. Если это выглядит нормально, подключите аналоговый вход Arduino к известному напряжению и посмотрите, сможете ли вы получить разумные показания.

Эти шаги должны помочь вам сузить круг проблем.

Circuit from Datasheet

,

как обычно, я предполагаю, что OP использует модуль с датчиком, а не обычный датчик, @Juraj

ДА... Я понял это немного поздно. Я оставил первую часть своего ответа для дальнейшего использования., @BobT