Как исправить ответ 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, ниже прилагается снимок экрана с последовательного плоттера.
В идеале реакция датчика должна быть стабильной, так как она была запущена в помещении с кондиционером. Я не могу точно определить проблему. Пожалуйста, помогите с этим.
@Srikrishnarka Pillalamarri, 👍-1
Обсуждение1 ответ
Я подозреваю (основываясь на вашем описании), что вы неправильно подключили датчик. Вам необходимо включить резистор (он же RL) для преобразования изменения сопротивления датчика газа в напряжение (в дополнение к раздельному питанию нагревателя). Смотрите прилагаемую схему из таблицы данных. Вы могли бы использовать фиксированный резистор ~20 К вместо RL и посмотреть, как это работает для вас.
Если вы просто подключите датчик к аналоговому входу без RL или +5, то вход будет по существу плавающим, и любые измерения будут бессмысленными.
Если этот датчик уже установлен на плате (как следует из A0), попробуйте проверить аналоговый выход с помощью вольтметра/DVM, чтобы убедиться, что вы получаете какое-то разумное значение. Откройте бутылку спирта, жидкость для снятия лака или что-то подобное поблизости и посмотрите, не изменится ли напряжение. Если это выглядит нормально, подключите аналоговый вход Arduino к известному напряжению и посмотрите, сможете ли вы получить разумные показания.
Эти шаги должны помочь вам сузить круг проблем.
как обычно, я предполагаю, что OP использует модуль с датчиком, а не обычный датчик, @Juraj
ДА... Я понял это немного поздно. Я оставил первую часть своего ответа для дальнейшего использования., @BobT
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- Как подключиться к Arduino с помощью WiFi?
- avrdude ser_open() can't set com-state
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
Для аналогового типа датчика решающее значение имеет качество проводки. Если вы используете длинную проводку (длиной более 10 дюймов), проводка действует как антенна и принимает радиоволны и шумы. Так что было бы лучше, если бы вы показали нам настоящую проводку., @gbg