Меню

Ардуино датчик mq 131

Ардуино датчик mq 131

Здравствуйте! Разрабатываю проект на Ардуино и с датчиком озона MQ131 и столкнулся с проблемами. Очень мало информации именно по этому датчику.

По сути нужно считать аналоговый сигнал с выхода датчика и преобразовать его в уровень газа озона в ppm.

Есть датчик на плате с компаратором MQ131 и Ардуино с LCD дисплеем.

Судя по даташиту есть резистор у датчика который подгоняет диапазон измеряемой величины (на плате он уже установлен). Выход датчика подсоединяется к АЦП ардуино.

Вопрос как перевести величину на АЦП ардуино в PPM ? Как добится реальных замеров с этого датчика и как с ним работать?

Даташит на датчик: http://www.dimitra.by/files/datasheets/air-quality-control-gas-sensor.pdf

Тут кто-то уже хотел подключить: http://forum.arduino.cc/index.php?topic=112882.0

Тут исходник Ардуино проекта под любой из известных датчиков: https://github.com/empierre/arduino/blob/master/AirQuality-Multiple_Gas_Sensor1_4.ino

Форум где обсуждают: https://forum.mysensors.org/topic/147/air-quality-sensor/31

Примеры работы, но только с другим датчиком:

Вложения:
MQ131.JPG [14.34 KiB]
Скачиваний: 628
2-MQ131.JPG [13.57 KiB]
Скачиваний: 615
Вернуться наверх

Собутыльник Кота

Карма: 25
Рейтинг сообщений: 637
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2648
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1

Судя по всему, нужно сначала определить R0 на хлоре. Видимо это нужно делать для каждого сенсора, я так понял что большой разброс сопротивления.

Хотя я бы попробовал график с фиг.1 перенести на «миллиметровку» максимально точно, на сколько это возможно. Но на абсциссе координаты установил бы линейно. Там видимо будет функция похожая на обратную пропорциональность или степенную. Самое простое, наверное, будет рассчитывать ее методом КЛА. Само собой нужно будет определять сопротивление сенсора на воздухе (без азона) как начальное.

Ну еще нужно ввести поправку на температуру и влажность.

_________________

Добро всегда побеждает зло. Поэтому кто победил — тот и добрый.

JLCPCB, всего $2 за прототип печатной платы! Цвет — любой!

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/cwc

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

Источник

Расстановка точек над датчиками газа серии MQ – глубокое понимание даташита и настройка

После покупки копеечного датчика утечки газа появилось желание разобрать все по полочкам и узнать, что происходит внутри. Информации и статей по датчикам очень много, но большинство ограничено распиновкой стандартного китайского модуля, иногда принципов работы. Про относительно точное определение абсолютных значений информации нет. Забегая наперед скажу, что мы попробуем выжать все из даташита, включая: точные функции определения «попугаев», температурно-влажностной коррекции, некоторых возможностей селекции.

Для примера взят датчик горючих газов (в первую очередь — метана) MQ-4. Если коротко, то чувствительный элемент датчика, в силу своих химических свойств, меняет сопротивление при разной концентрации газов, и выступает в качестве резистора делителя напряжения из которого мы получаем значение напряжения через АЦП. Свойства эти проявляются при определенной температуре элемента для чего датчик необходимо нагреть.

Выше — схематическое представление датчика и схема делителя, где Н – спираль нагрева (33 Ом – около 150 мА, токи великоваты для поделок с контроллерами, нужно учесть при проектировании схемы питания), АВ – выводы чувствительного элемента со сменным сопротивлением в зависимости от концентрации газа, RL – второй резистор делителя, рекомендуемый даташитом – 20 кОм.

«Ro: sensor resistance at 1000ppm of CH4 in the clean air»

На данном этапе, благодаря АЦП и формуле, мы знаем только значение текущего сопротивления (Rs) от которого будем отталкиваться. Будем считать, что мы замеряли его в чистом (от детектируемых газов) воздухе, при калибровочной температуре и влажности (по даташиту 20С, 65%). Немного позже будет интересный комментарий по поводу влажности при которой проводится калибровка.

Таким образом опорное значение Ro для датчика MQ-4 считаем:

На графике, и в тексте даташита указано, что чувствтильность датчика лежит в пределах Rs/Ro для метана – 1.8…0.43, для дыма – 3.8…2.6. Таким образом обрабатывая данные с датчика можно провести селекцию дыма. Остальные газы, как правило, «замешиваются» в эти диапазоны. Это подтверждается коротким экспериментом с тлеющей бумагой. Значения RsRo опускаются до 2.8, иногда «проваливаются» ниже:

Расчет реальной концентрации газа немного осложняется кривизной графика, и отсутствием внятных контрольных точек, по которым этот график можно откорректировать. Также проблема в низком расширении изображения, из-за чего приходиться по-пиксельно определять контрольные точки.

Для уточнения расчетов наиболее наглядные значения разнесены на сетку координат. По контрольным точкам определена функция зависимости показателей ppm от Rs/Ro:

Построенный график соответствует функции:

Таким образом количество «попугаев» узнаем по формуле:

Немного о температурной компенсации

Исходя из следующего графика даташита известно, что в зависимости от среды, в которой используется датчик, показания отклоняются от действительных:

Для более точного определения зависимости показателей от окружающей среды, также был построен график функции, датчик ограничен температурным диапазоном -10 оС … +50 оС (x=TEMP/10; y=RsRo(error) * 100):

График соответствует функции:

За основу взят график с влажностью 33% (он же, судя по пересечению 1, является калибровочным). Если обратить внимание на влажность, то 1% влажности смещает график на 0.3 по Y (в реальных значениях корректировки RsRo будет разделен на 100 – в графике применен коэффициент для наглядности). «+25» смещает положение графика по Y для «нулевой» влажности, «0.3 х HUM» возвращает положение по Y для актуальной влажности. Некоторое изменение «веса» 1% влажности в крайних температурах малозначно и не учитывается.

Важное замечание: все это применяется, если калибровка проведена в чистом воздухе при влажности 33% и температуре 20 градусов.

Значение корректировки RsRo(error) которое нужно будет добавить к значениям RsRo для компенсации влияния среды, можно рассчитать по формуле:

Поскольку мы будем калибровать датчик в своей среде, которая не будет соответствовать требованиям даташита (20С/33%), можно добавить выравнивание функции определения RsRo(error) для компенсации среды калибровки:

В этом случае график смещается по Y на разницу влажности калибровки – тут все просто. Немного хуже обстоят дела со смещением по X: простое перемещение будет давать погрешность на кривизну. Если не проводить калибровку в крайних температура, а все же в приближенных к комнатной, эта погрешность не будет значительной.

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

Учитывая точность и цену датчика, — этот блок излишний.

Для расчета уже компенсированного значения:

Переносим теорию в микроконтроллер

Для проверки датчика использован микроконтроллер STM32F407VET и библиотека HAL, значения для корректировки поступали с датчика BME280. В заголовочном файле определяем некоторые постоянные значения для нашего сетапа.

Источник

Ардуино датчик mq 131

Arduino library for ozone gas sensor MQ131

This is a comprehensive Arduino library to obtain ozone (O3) concentration in the air with the Winsen MQ131 sensor. The library supports both versions of the sensor (low concentration and high concentration), the calibration, the control of the heater, the environmental adjustments (temperature and humidity) and the output of values in ppm (parts per million), ppb (parts per billion), mg/m3 and µg/m3.

  • The MQ131 is a semiconductor gas sensor composed by a heater circuit and a sensor circuit.
  • Heater consumes at least 150 mA. So, don’t connect it directly on a pin of the Arduino.
  • It is important to respect the pinout of the sensor. If you put Vcc on the sensor and not on the heater, you could damage your sensor irreversibly.
  • Sensor MQ131 requires minimum 48h preheat time before giving consistent results (also called «burn-in» time)
  • There are three different MQ131:
    • a black bakelite sensor for low concentration of ozone (with WO3 sensitive material)
    • a blue bakelite sensor for low concentration of ozone (with SnO2 sensitive material)
    • a metal sensor for high concentration of ozone.
  • This driver is made to control the «naked» Winsen MQ131. The driver is able to pilot the low concentration WO3 version, the low concentration Sn02 version and the high concentration version.
  • To measure the air quality (e.g. pollution), it’s better to use the low concentration MQ131 because the high concentration is not accurate enough for low concentration.

How to install the library?

The easiest way to install the library is to go to the Library manager of the Arduino IDE and install the library.

  1. In the Arduino IDE, go into Menu Tools ->Manage Libraries.
  2. Search for MQ131
  3. Install MQ131 gas sensor by Olivier Staquet
  • Heater is controlled by MOSFET N-channel via the control pin (on schema pin 2, yellow connector)
  • Result of the sensor is read through analog with RL of 1MΩ (on schema pin A0, green connector)
  • The MOSFET is a IRF840 but any N-channel MOSFET that can be controlled by 5V is OK.
  • The load resistance (RL) can be different than 1MΩ (tested also with 10kΩ) but don’t forget to calibrate the R0 and time to heat.

Basic program to use your MQ131

The driver has to be initialized with 4 parameters:

  • Pin to control the heater power (example: 2)
  • Pin to measure the analog output (example: A0)
  • Model of sensor LOW_CONCENTRATION , SN_O2_LOW_CONCENTRATION or HIGH_CONCENTRATION (example: LOW_CONCENTRATION )
  • Value of load resistance in Ohms (example: 1000000 Ohms)

Before using the driver, it’s better to calibrate it. You can do that through the function calibrate() . The best is to calibrate the sensor at 20°C and 65% of humidity in clean fresh air. If you need some log on the console, mention the serial in the function begin() (example by using the standard Serial: MQ131.begin(2,A0, LOW_CONCENTRATION, 1000000, (Stream *)&Serial); ).

The calibration adjusts 2 parameters:

  • The value of the base resistance (R0)
  • The time required to heat the sensor and get consistent readings (Time to read)

Those calibration values are used for the usage of the sensor as long as the Arduino is not restarted. Nevertheless, you can get the values for your sensor through the getters:

And set up the values in the initialization of your program through the setters:

In order to get the values from the sensor, you just start the process with the sample() function. Please notice that the function locks the flow. If you want to do additional processing during the heating/reading process, you should extend the class. The methods are protected and the driver can be extended easily.

The reading of the values is done through the getO3() function. Based on the parameter, you can ask to receive the result in ppm ( PPM ), ppb ( PPB ), mg/m3 ( MG_M3 ) or µg/m3 ( UG_M3 ).

The sensor is sensible to environmental variation (temperature and humidity). If you want to have correct values, you should set the temperature and the humidity before the call to getO3() function with the function setEnv() . Temperature are in °C and humidity in %. The values should come from another sensor like the DHT22.

Источник

Датчики газов серии MQ

Датчики серии MQ это распространённый тип датчиков, а все дело в том что они простые, а значит дешевые. Дешевизна и определила их широкое распространение.

Разберемся как они работают.

Принцип работы их прост до безобразия и заключается в изменении сопротивление некого элемента при воздействии на него другого элемента и называется это электрохимическим сенсором.

Если переходит к конкретике, то применяется оксид олова (IV) SnO2 на который действуют углеводородные газы, водород и другие вещества (да на него много чего действует) восстанавливая его, отнимая кислород вплоть до металлического олова, а как известно сопротивление оксидов и металлов различается (олово лучше проводит ток, его сопротивление мало, а вот оксиды плохо проводят ток сопротивление их большое).

Вот окислительно-восстановительная реакция:

2 O0 + 4 e- → 2 O-II (восстановление)

Но (опять это-НО)! Для того что бы реакция была обратима, а датчик был многоразовым, а не одноразовым, эту подложку из оксида олова нагревают. При нагреве как известно скорость элементарных частиц возрастает, а значит им легче вступить в реакцию, в данном случае окислительно-восстановительную. Но из за этого нагрева, датчик и «жрет» достаточно много энергии, конечно, он же по совместительству работает электроплиткой. С течением времени поверхность оксида олова загрязняется всем чем придется — пылью, углеродом и так далее и чувствительность датчика падает. Так датчик рассчитан на 5 лет причем не важно работает он или нет. Повысить чувствительность датчика можно постоянно в течении суток или двух «прокалив» датчик — нагреть подложку тогда все «грязь» выгорит и оксида олова станет как новый (на самом деле не совсем так)

На чувствительность датчика влияет еще много факторов:

  • температура окружающей среды, это и понятно см. выше
  • влажность, от влажности зависит площадь соприкосновение подложки с детектируемым веществом и кислородом

Расчетные показатели даны для 65% влажности и температуры 20 градусов Цельсия

  • наличия кислорода, работа датчика рассчитана на среднее содержание кислорода в воздухе 21%, если кислорода нет вообще (менее 2%) то работать не будет, это и понятно не будут идти реакции окисление-восстановления, а если кислорода много — то реакция окисления будет идти интенсивнее, что то же изменит показания датчика.

Вывод из всего этого такой — данные датчики приспособлены для грубой оценки содержания газов в воздухе, но в принципе подходят в качестве детекторов наличия — отсутствия.

Про единицы измерения

Опять эти америкосы со тупыми единицами измерения инчами, футами, галонами и так далее все портят. Предлагаю ввести свои санкции и перейти с системы СИ на свою исконно русскую единицу сажень и локоть в отместку америкосам! Но, ладно, мы отклонились от темы.

Чтобы как следует оперировать со значениями, нужно для себя уяснить единицы измерений. У нас, на территории бывшего Советского Союза, показатели принято измерять в процентах (%) или же непосредственно в массе к объему (мг/м3), что логично и правильно. А вот в некоторых зарубежных странах применяет такой показатель как ppm, parts per million или в переводе «частей на миллион», в принципе, то же что процент, но отличается размерность, 1 ppm = 0,0001%, соответственно 3% = 30.000 ppm.

Просто приведу для справки:

CO: 3% = 30.000 ppm = 34695.52 мг/м3

CO2: 3% = 30.000 ppm = 54513.22 мг/м3

А так есть онлайн калькуляторы, юзайте интернет.

Какие датчики бывают

Производитель у всех датчиков, но не плат, китайская компания HANWEI она выпускает различные датчики, их много, для некоторых подложка не известна, но для большинства это как раз оксид олова (IV), SnO2 о котором мы говорили ранее.

Самые распространённые датчики:

  • MQ-3 – пары алкоголя;
  • MQ-4 – бутан, пропан, метан, дым
  • MQ-5 и MQ-6 – пропана, бутана;
  • MQ-7 – угарный газ;
  • MQ-8 – водород.

Но на самом деле их много:

MQ-2 (Метан, бутан, LPG, дым) Питание 5V

MQ-3 (Спирт, этанол, дым)Питание 5V

MQ-4 (Метан, CNG газ) Питание 5V

MQ-5 (Природный газ, LPG) Питание 5V

MQ-7 (Угарный газ) Питание Переменный 5V и 1.4V

MQ-9 (Угарный газ, горючие газы) Питание Переменный 5V и 1.4V

MQ135 (Качество воздуха, Бензол, алкоголь, дым) Питание 5V

MQ136 (Сероводород) Питание 5V

MQ138 (Бензол, толуол, спирт, ацетон, пропан, газообразный формальдегид, водород) Питание 5V

MQ214 (Метан, природный газ)Питание 6V

MQ216 (Природный газ, уголь газ) Питание 5V

MQ303A (Спирт, этанол, дым) Питание 0.9V

MQ306A (LPG, бутан) Питание 0.9V

MQ307A (Угарный газ) Питание Переменный 0,2V и 0.9V

MQ309A (Угарный газ, горючие газы) Питание Переменный 0.2V и 0.9V

Как видим большинство датчиков с питанием 5 вольт, но есть отдельные варианты с различным, извращенным питанием, хорошо, что они не часто встречаются.

Источник

Читайте также:  Датчик уровня хладагента hbsr level switch 24v ac dc npn
Adblock
detector