Troyka-Mq4 gas sensor, Датчик природного газа для Arduino проектов, Россия | купить в розницу и оптом

Troyka-Mq4 gas sensor, Датчик природного газа для Arduino проектов, Россия | купить в розницу и оптом Анемометр

Что такое ppm

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

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

Перевод из процентов или ppm в мг/м3 уже сложнее, тут нужно учитывать молярную массу газа, давление и температуру. В целом формула для пересчета выглядит следующим образом P x VM=R x T, где P – давление, VM – молярный объем, R – универсальная газовая постоянная, T – абсолютная температура в Кельвинах (не Цельсиях и не Фаренгейтах).

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

Данные приведены для нормального атмосферного давления и комнатной температуры. Обратите внимание, что CO2 при сравнимом процентном соотношении почти вдвое тяжелее CO. Напомню, что молекула CO2 содержит на один атом больше, отсюда и разница. И именно благодаря этой разнице CO2 скапливается в низинах, а CO у потолка.

Main.c

#include "main.h"
#include "adc.h"
#include "gpio.h"
#include "mq4.h"

int ppm_def;  //ppm без коррекций
int ppm_adv;  //ppm с поправкой на изменение среды
int ppm_full;  //ppm с поправкой на изменение среды и среду калибровки

float mq4_temp_cal = 20; //температура при которой проведена калибровка
float mq4_hum_cal = 33; //влажность при которой проведена калибровка
extern float mq4_calib_value; //значение коррекции для RsRo
extern float mq4_calib_value2; //значение коррекции для RsRo c учетом среды калибровки

int mq4_Ro = MQ4_RO_DEF; //сопротивление датчика при 1000ppm корректируется калибровкой 
extern int mq4_Rs;   //сопротивление датчика в текущий момент
extern int mq4_adc_value; //значение АЦП
extern float mq4_volts; //вольт АЦП  
extern float  mq4_RsRo; //соотношение послежнего измерянного сопр. с сопр. 1000 ppm

//ПЕРЕМЕННЫЕ АТМОСФЕРНОГО ДАТЧИКА:
float tf = 0.0f, hf = 0.0f; //значения текущих показателей влажности и температуры

int main(void)
{
 HAL_Init();
 MX_GPIO_Init();
 MX_ADC1_Init();
}

while (1)
{
 //запускаем расчеты в разных форматах:
 ppm_def = mq4_default_work();              
 ppm_adv = mq4_advanced_work(tf,hf);
 ppm_full= mq4_full_work(tf,hf,mq4_temp_cal,mq4_hum_cal);
 //нажимаем кнопку для калибровки: 
  if(HAL_GPIO_ReadPin(KEY_1_GPIO_Port, KEY_1_Pin)==GPIO_PIN_RESET) 
   {
   mq4_Ro = mq4_calib_Ro(); //калибровка 
   mq4_temp_cal = tf;   //записываем температуру при которой проведена калибровка
   mq4_hum_cal = hf;   //записываем влажность при которой проведена калибровка
   }
}

Mq4.c

mq4.c
#include "mq4.h"
#include "adc.h"
#include "math.h"

int mq4_Rs; //текущее сопротивление датчика
int mq4_adc_value; //значение АЦП
float mq4_volts; //вольт АЦП
float mq4_RsRo; //соотношение измерянного сопр. с сопр. 1000 ppm
float mq4_calib_value;  //значение коррекции для RsRo
float mq4_calib_value2; //значение коррекции для RsRo (с поправкой на среду калибровки)

extern int mq4_Ro; //сопротивление при концентрации 1000ppm 
extern int mq4_temp_cal; //температура при которой проведена калибровка 
extern int mq4_hum_cal; //влажность при которой проведена калибровка 

Mq4.h

#ifndef MQ4_H_
#define MQ4_H_

int mq4_default_work (void); //РРМ без температурной компенсации
int mq4_advanced_work (float temp, float hum); //РРМ с применением компенсации
int mq4_full_work (float temp, float hum, float temp_cal, float hum_cal); //РРМ с применением компенсации и условий калибровки
int mq4_calib_Ro(void); //калибровка 
int mq4_get_adc (void); //функция возвращает десятичное значение, снятое с АЦП

#define MQ4_ADC hadc1 //АЦП к которому подключен датчик
#define MQ4_ADC_PRECISION 4096 //разрядность АЦП в целых значениях (4096 = 12 bit)
#define MQ4_REFERENCE_VOLTAGE 3.3f //опорное напряжение АЦП
#define MQ4_STATIC_RESISTOR 20000 //RL - использованный постоянный резистор делителя 
#define MQ4_RO_DEF 13600 //Ro - сопротивление при 1000 ppm (RsRo=1), значение  
#define MQ4_HUM_WEIGHT 0.3f //вес влажности в функции коррекции (смещение по у) 
#define MQ4_AIR_RSRO 4.4f //соотношение RsRo для чистого воздуха (в даташите к датчику)
#endif /* MQ4_H_ */

Troyka-mq4 gas sensor, датчик природного газа для arduino проектов, россия | купить в розницу и оптом

Утечки бытового газа крайне опасны — даже маленькие трещинки в водонагревателе или старой плите грозят большим взрывом. Датчик MQ-4 станет основой системы сигнализации неисправности газового оборудования.

Характеристики:
Напряжение питания нагревателя: 5 В;
Напряжение питания датчика: 3.3–5 В;
Потребляемый ток: 150 мА;
Габариты: 25.4×25.4 мм.

Комплектация:
1× Плата-модуль c датчиком MQ-4;
2× Трёхпроводной шлейф;
1× Джампер.

Альтернативы?

Если датчики MQ так уж плохи, то есть ли какая альтернатива для использования в домашних проектах? На самом деле есть. Даже много. Методов измерения концентрации газов не один и не два. Только вот датчики, обладающие высокой точностью, стоят приличных денег.

Один из вариантов миниатюрного датчика CO2 с инфракрасным методом измерения. Датчик MH-Z19.

Однако, совсем недавно на рынке, усилиями все тех же трудолюбивых товарищей, появились инфракрасные детекторы. Да, они пока далеко не для всех газов, но как минимум СО2ловят без значимых энергетических затрат и с высокой селективностью. В таких датчиках используются недисперсийный инфракрасный метод определения концентрации газа.

Если же требуется детектирование других газов, но с применением недорогих устройств, то доступных вариантов на текущий момент (лето 2022 года) не так много, если не сказать прямо, что их совсем мало. Альтернативой можно считать использование серии MQ, правда обходиться придется только порогами значений (о точности перевода в ppm я уже высказался выше).

Сигнализатор CO. Применяется электрохимичский датчик и измерение в ppm.

Многие сразу же возразят, дескать, я лично использовал такой датчик, и он работает. В качестве примеров приводят опыты сродни «подышать на датчик», подержать вокруг него руку, пустить облачко сигаретного дыма. Да, показания датчика сразу же изменятся, значения поползут вверх.

Да, датчик отразит то, что он нагрелся, то что увеличилась влажность, то, что в атмосфере стало больше углерода и меньше кислорода. Но насколько больше, какое количество исследуемого газа сейчас в атмосфере и самое важное какого именно газа? Вот на этот вопрос ответ при помощи датчиков серии MQ дать уже нельзя.

Про анемометры:  Нужна помощь. Калибровка датчика давления. - Общие вопросы - Главный форум метрологов

Аналоговый датчик

Тут пользователь получает уже не просто сам датчик, а датчик, установленный на плату, с установленным резистором. Подключать его уже можно (и нужно) к измерителю напряжения напрямую, без каких-либо промежуточных резисторов. В этом случае доступно только измерение напряжения, так как вкупе с резистором вся схема работает как обыкновенный делитель напряжения.

Аналоговый датчик

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

Вариант калибровки датчика и преобразования показаний в ppm

Блуждая по сети в поисках решения по калибровке и получения достоверных результатов с датчика, я наткнулся на весьма любопытный пост от некоего Davide Gironi, который столкнулся с точно такой же проблемой, как и я. Davide попытался разобраться, каким образом можно получить с его датчика MQ-135 (Air Quality) показания в виде ppm.

Согласно исследованиям, проведенным блоггером для калибровки, достаточно иметь представление о концентрации какого-то газа в атмосфере и опираясь на эти данные попробовать подобрать резистор для попадания в нужный сектор по графику. Davide использовал датчик MQ-135 который предназначен для определения качества воздуха, среди контролируемых газов которого есть и CO2.

Затем, после калибровки он набросал небольшой код, позволяющий получить искомые ppm исходя из полученных в результате калибровки данных. Я не буду приводить здесь код, желающие могут ознакомиться с ним самостоятельно, но сводится он примерно к этому:

float ppm = ((10000.0 / 4096.0) * raw_adc) 200;

Приведенный выше код, между прочим, из примера для датчика MQ-4 с цифровым интерфейсом I2C. Заметьте, что это лучше, чем ничего. Ведь многие просто не в состоянии дойти и до такого преобразования и ограничиваются лишь просто некими пороговыми значениями.

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

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

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


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

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

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

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


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

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

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

Питание

Выше я уже упоминал, что для работы нагревателя датчиков MQ требуется подводить к нему качественное питание и в достаточно объеме. По спецификации датчики потребляют около 150 мА. В реальности потребление может плавать в весьма широком пределе. В принципе, 150 мА не такой уж и большой ток до тех пор, пока устройство (или несколько) с таким потреблением не пытаются скрестить с чем-то вроде Arduino.

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

Для обеспечения нормальной работоспособности нагревателя и как следствие самого датчика необходимо подавать питание отдельно для этих датчиков. Например, использовать независимый источник питания на 1 или 2 А и 5V для питания датчиков (не все датчики потребляют 5V). Либо использовать специальную плату, преобразующую напряжение 9-12V в требуемое для питания датчиков.

Дишманский пульт мониторинга CO из платы Arduino, датчика MQ7 и планшета.

В любом случае с источником тока, обладающим нужной мощностью, придется повозиться. Хотя возможен вариант, когда датчик подключается напрямую к плате (например, Arduino). Но в этом случае ничего большего к ней подключать не рекомендуется.

Подключение датчика газа mq-4 к микроконтроллеру – как подключить – avr – проекты на микроконтроллерах avr

 Гуляя по каталогам китайских продавцов на E-bay случайно наткнулся на датчик газа MQ-4. Этот датчик предназначен для определения концентрации метана (CH4) в воздухе. А так как этот газ является основным компонентом бытового газа, иметь подобный датчик весьма полезно – можно собрать детектор утечки газа или что-нибудь подобное. В общем интересная штучка, особенно радует цена в $4,5 и аналоговый интерфейс общения  – проблем с подключением не возникнет.

 Для подключения датчика под его пузом имеются 6 выводов, 4 из которых дублируют друг друга. Поэтому для подключения используется всего 4 вывода: 

Н-Н это выводы нагревателя. К нему подводится напряжение 5 вольт, причем неважно постоянное или переменное.

А-А и В-В это электроды. Сигнал можно снимать с любого из них. Например, на схеме ниже питание подведено к A-A, а сигнал снимается с электрода B-B. Но можно и наоборот – запитывать к B-B, а сигнал снимать с А-А. Работать будет в обоих случаях. В этом сенсор чем-то похож на вакуумную электронную лампу 

Troyka-Mq4 gas sensor, Датчик природного газа для Arduino проектов, Россия | купить в розницу и оптом

 Резистором RL настраивается чувствительность датчика. Рекомендуется ставить в диапазоне 10к. Чувствительность датчика, если верить документации составляет от 200 до 10000 ppm (что это?)

Про анемометры:  Котел «Прометей»: модели длительного горения для отопления мощностью 12 и 20 кВт, отзывы владельцев

  В даташите на MQ-4 приведен график, по которому видно, что помимо метана, датчик очень хорошо реагирует на пропан (LPG), и в меньшей степени на газообразный водород, угарный газ и пары алкоголя 

Troyka-Mq4 gas sensor, Датчик природного газа для Arduino проектов, Россия | купить в розницу и оптом

 А вообще в семействе датчиков MQ-x имеются сенсоры специально предназначенные для обнаружения этих газов. Вот некоторые из них:

 MQ-3 – сенсор паров алкоголя

 MQ-5 и MQ-6 – предназначены для обнаружения пропана/бутана

 MQ-7 – чувствителен к угарному газу (имхо, заслуживает отдельного внимания)

 MQ-8 – специализируется по водороду H2

 и т.д. список можно дополнить еще парой-тройкой датчиков, все они легко гуглятся.

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

Troyka-Mq4 gas sensor, Датчик природного газа для Arduino проектов, Россия | купить в розницу и оптом

 Датчик подключается к ADC0 (PortC.0). В качестве опорного напряжения АЦП используется внутренний ИОН на 2,54 вольта. Поэтому на резисторах R5-R6 собран делитель напряжения, чтобы на вход АЦП попадало не больше 2,5 вольт. Резистор R7 дополнительная подтяжка к земле согласно схеме из даташита, его я взял 3,3 килоома – что было под рукой.

Набросал небольшую программку для ATmega8, частота тактирования 1 МГц

$regfile = “m8def.dat”
$crystal = 1000000
$baud = 1200

‘конфигурация АЦП
Config Adc = Single , Prescaler = Auto , Reference = Internal

‘подключение светодиодов
Config Portb.= Output
Config Portb.= Output
Config Portb.= Output
Config Portb.= Output

Dim W As Integer                        ‘для хранения значения полученного с АЦП

Do

‘запуск и считывание показаний с датчика
 Start Adc
 W = Getadc(0)                          ‘датчик подключён к PortC.0

‘в зависимости от значения показаний зажгем светодиоды индикации
If W < 700 Then
 Portb = &B00000000                     ‘значение меньше порога срабатывания, все гуд
End If

If W > 700 And W < 750 Then             ‘низкий уровень загазованности
 Portb = &B00000010
End If

If W > 750 And W < 800 Then             ‘средний уровень
 Portb = &B00000110
End If

If W > 850 And W < 900 Then             ‘загазовано чуть меньше чем полностью
 Portb = &B00001110
End If

If W > 900 Then                         ‘караул!
 Portb = &B00011110
End If

Print W                                 ‘отсылаем показания в UART

Wait 1

Loop

End

 Показания с датчика будут считываться с частотой 1 раз в секунду. И в зависимости от показаний будет гореть определенное количество светодиодов или не будут гореть вовсе. Значения порогов я взял после пробного испытания и вывода показаний в UART. 

 Тестовая схема собранная на макетке

Troyka-Mq4 gas sensor, Датчик природного газа для Arduino проектов, Россия | купить в розницу и оптом

Припаянный датчик

Troyka-Mq4 gas sensor, Датчик природного газа для Arduino проектов, Россия | купить в розницу и оптом

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

Troyka-Mq4 gas sensor, Датчик природного газа для Arduino проектов, Россия | купить в розницу и оптом

 После подачи питания, датчику необходимо время чтобы выйти на рабочий режим, примерно 10-15 секунд. Это время нужно чтобы нагреватель внутри датчика поднял температуру до необходимого значения. Кстати, сам датчик во время работы тоже не слабо нагревается, по ощущениям градусов до 50-и. Так что без паники, это норма 🙂

Ссылка на датчик

Скомпилированная прошивка

Даташит на датчик MQ-4

Категория: Как подключить | Добавлено: 06.12.2022Просмотров: 43052 | Комментарии: 34
| Теги:
| Рейтинг: 4.9/9

Полезные ссылки

  • Даташит датчика MQ-4
  • Ссылка на скачивание Graph 4.4.2 необходима для определения формулы зависимости Rs/Ro. Полностью бесплатна.

Преобразование значений ацп в ppm


На выходах делителя АЦП мы снимаем значение напряжения (Uadc) исходя из которого можем рассчитать сопротивление датчика Rs (зная номинал второго резистора делителя RL), т.е. определить, что именно нам передает датчик:

Имея значение Rs мы уже можем определить концентрацию газа по графику из даташита. Для определения концентрации используется нехитрое соотношение Rs/Ro. Ro в данном случае – сопротивление элемента датчика при концентрации детектируемого газа 1000 ppm.

Примеры использования

Определение значения ppm:


Работа функции расчета температурной компенсации (в данном случае при одинаковой влажности):

Коррекция значений при калибровке в нестандартных условиях:

Разбираемся с датчиками co и метана mq-4 и mq-7

20220814_100333В бытность появления у меня набора Arduino, в поисках объекта для автоматизации, я как-то сам собой задумался над тем, что неплохо бы получать информацию о том, не является ли опасным уровень CO (угарный газ) в зимнее время в котельной загородного дома. В холодные зимние деньки и особенно ночи, газовое оборудование работает в интенсивном режиме и жжет природный газ для поддержания теплоты в доме. А вдруг у меня плохая вентиляция? Или в трубе застрял валенок? И каждый раз входя в котельную и находясь там некоторое время, я подвергаю свою драгоценную жизнь опасности. Да и от утечек природного газа тоже никто не застрахован. Тут вообще можно полдома взорвать, просто включив свет. Их хорошо бы тоже контролировать и как-то отслеживать.

Поэтому было решено собрать систему по мониторингу уровня CO и метана в воздухе котельной на основе Arduino или совместимой платы. Помимо простой сигнализации, хотелось бы собирать еще и статистику, например, о том, как связаны концентрации опасных газов с работой газового оборудования.

В принципе, задача реализуется на современном уровне культуры и техники, причем за очень небольшие деньги. В качестве источника расхода природного газа я использовал импульсы со встроенного в газовый счетчик датчика, а для анализа воздуха применил два чрезвычайно популярных в среде разработчиков Arduino датчика MQ-4 и MQ-7. MQ4 «нюхает» воздух на предмет содержания метана, а MQ7 проводит измерения в отношении CO.

Про анемометры:  testo 410i - смарт-зонд анемометр с крыльчаткой: описание | Купить измерители параметров окружающей среды по оптимальным ценам

Но для того чтобы пойти дальше, оказалось, что нужно конкретно углубиться в детали. Поскольку мало кто из пользователей Arduino и аналогов понимает, что это за датчики такие MQ-4 и MQ-7, и как ими вообще пользоваться. Ну так, приступим потихоньку к увлекательному повествованию.

Различие со и co2

Для начала стоит разобраться что же такое есть CO и в чем его отличие от CO2. Во-первых, CO это монооксид углерода, который также называют угарным газом, окисью углерода или оксидом углерода (II). СО газ весьма коварный. Он чрезвычайно ядовит, но при этом не обладает ни цветом, ни запахом.

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

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

Основным источником выделения СО, как ни странно, является сгорание углеродного топлива при недостаточном количестве кислорода. Углерод «не догорает» и вместо углекислого газа CO2, в атмосферу выбрасывается угарный газ CO. В бытовом понимании отличным источником СО, при неправильной эксплуатации, могут выступать дровяные печи, газовые конфорки, газовые котлы и прочая отопительная техника, работающая на углеродном топливе.

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

Цифровой датчик

Казалось бы, если датчик цифровой, то он должен выдавать информацию в цифровом виде. Однако, все цифровые датчики с сенсорами MQ, что мне попадались, не имели такой возможности. «Цифровой» в их названии означает только то, что датчик имеет цифровой выход, который переключается в режим HIGH при превышении некоего порога концентрации измеряемого газа.

Датчик с цифровым и аналоговым интерфейсом

Понятное дело, что на платах цифрового датчика уже распаяны все резисторы. А у хороших датчиков присутствуют еще и подстроечные резисторы, доступные для настройки датчика. Один применяется для настройки сенсора, а второй для установки порога для цифрового выхода.

Цифровой датчик с цифровой шиной

Пожалуй, это самый Hi End среди подобных датчиков. Подключение и передача данных осуществляется посредством цифровой шины I2C. И к одному устройству съема информации (например, Arduino) можно подключить аж сотню таких датчиков. Только нужно иметь в виду, что датчики потребляют весьма много тока и его необходимо подавать отдельно. Настроечный резистор, само собой, присутствует.

Цифровой датчик с цифровым интерфейсом

Судя по коду примера, предлагаемого производителем датчиков, сам датчик посылает данные в сыром виде и уже программно они переводятся в значения ppm. В целом от аналогового варианта датчик отличается только наличием цифровой шины.

Цифровой или аналоговый?

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

Чистый датчик

Самый простой и самый дешевый вариант. В поставке присутствует только сам электрохимический датчик и больше ничего. Подключать его к системе с измерением напряжения (например, к аналоговому порту Arduino) нужно через нагрузочный резистор. Резистор лучше всего использовать с возможностью подстройки при калибровке. Номиналы резистора указываются в спецификации (DataSheet) на датчик.

Датчик MQ-4

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

Заключение

  1. Принципы, описанные в статье, подходят для работы и с другими датчиками. В том числе точными датчиками TGS2611 (стоимость превышает в 15-20 раз рассмотренный MQ-4). Для адаптации кода к другим датчикам необходимо внести изменения в header-файл и формулу степенной функции определения ppm (функция по контрольным точкам определена программой Graph 4.4.2).
  2. Требовать высокой точности от датчика стоимостью 1$ не приходиться, возможно для надежных устройств следует обратить внимание на датчики более дорогих серий.
  3. В среде, чистой от детектируемого газа, показатель RsRo может смещаться на 0,5…0,8, в зависимости от разных факторов (в перую очередь температуры). Таблица коррекции применима только в состоянии детектирования (наличия детектируемого газа около 1000 ppm), т.е. не применима для режима ожидания, где действуют совсем другие соотношения. Конечно же, можно проследить закономерность, но особого смысла в этом нет – в любом из случаев показатели 4…5 RsRo свидетельствуют о отсутствии газов.
  4. Температурная коррекция в рабочем режиме действительно необходима. Поправку на влажность можно либо исключить, либо снизить «вес» процента влажности в header-файле (и выровнять стартовую позицию по Y).
  5. Коррекция с поправкой на температуру, при которой проведена калибровка, сомнительна. Желательно калибровать датчик в условиях согласно даташиту (20 градусов Цельсия, 33% влажности (или 65% с со смещением графика зависимости влажности)).
  6. Селекция дыма действительно соответствует даташиту и определяет задымление начиная с 3.8 RsRo. При непосредственном контакте с дымом — почти стабильно 2.6, и иногда проваливалось до 1.2…1.5.
  7. При сборке делителя имеет смысл обратить внимание на качество пайки, фильтры и погрешность резистора RL (даташит рекомендует использовать 20 кОм, или в пределах 10…47 кОм). Выбирать по ключевому слову High Precision Resistor.
Оцените статью
Анемометры
Добавить комментарий