• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

ESP32+MQ135

Далекс

New member
Приветствую.Имеется esp32-wroom32(38pin) и датчик MQ135.Нужно получать значения PPM(CO2).На mq135 резистор rl заменил с 2 на 32кОм,в библиотеке mq135.h изменения внес.При калибровке rzero выдаются отрицательные значения
.изображение_2023-12-17_114002341.png
Соответственно при дальнейшем написании скетча, датчик работает с точностью до наоборот (т.е. при повышении концентрации CO2 значения PPM падают).Что интересно ,с ардуино уно датчик mq135 работает правильно, т.е. дело не в датчике.Может кто то сталкивался с этой проблемой?Помогите решить.
 

aZholtikov

Active member
 

Далекс

New member
Про ADC читал,но вроде по умолчанию устанавливается ADC_ATTEN_12db .То есть нужно прям прописывать в скетче ADC_ATTEN ?
 

Далекс

New member
Переписал скетч с учётом ADC_ATTEN и добавил замер напряжения .Напряжение с датчика в допустимом диапазоне. Всё равно "PPM nan"mq.jpg
 

Вложения

Далекс

New member
Решение найдено. В библиотеке MQ135 в файле MQ135.cpp находим строку "
float MQ135::getResistance() {
int val = analogRead(_pin);
return ((1023./(float)val) - 1.)*_rload;

, и меняем 1023 на 4096 mqnorm.png
 

Далекс

New member
А разве ,не чем выше разрешение-тем выше точность ? У меня ещё резисторный делитель стоит.
 
Сверху Снизу