KEEN SIDE успешно заменяет аналогичные продукты таких известных брендов, как Phoenix Contact, Weidmueller, Degson, Winstar, Hsuan Mao, KLS, G-NOR, Mean Well и др.

Антилогарифмический преобразователь линеаризует датчик углекислого газа

Hanwei Electronics MG-811

Журнал РАДИОЛОЦМАН, октябрь 2014

Несмотря на то, что для определения концентрации углекислого газа чаще всего используются инфракрасные датчики, электромеханические аналоги составляют им серьезную конкуренцию благодаря высокой чувствительности, широкому диапазону измерений и дешевизне. Электромеханические датчики подключаются к микроконтроллеру, как правило, через буферный усилитель со сверхмалым входным током (менее 1 пА). Усилитель необходим для линеаризации логарифмического отклика датчика. Хорошим примером такого решения может служить модуль SEN-000007 компании Sandbox Electronics, в котором используется датчик CO2 MG-811, выпускаемый компанией Hanwei Electronics. К сожалению, в [1] приведены подробные схемы датчика и программные коды, но ни слова не сказано о его точности.

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

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

Антилогарифмический преобразователь линеаризует датчик углекислого газа
Рисунок 1. Датчик имеет логарифмическую характеристику
со смещением 265 мВ.

Датчик MG-811 измеряет концентрацию CO2 в диапазоне от 400 до 10,000 ppm (от 0.04% до 1%). На Рисунке 1 изображена передаточная характеристика датчика. Точки на графике взяты из технического описания MG-811 [1]. Аппроксимирующая кривая и уравнение подобраны с помощью Microsoft Excel.

Антилогарифмический преобразователь линеаризует датчик углекислого газа
Рисунок 2. Счетверенный операционный усилитель и согласованная пара
транзисторов позволяют просто и с минимальными затратами
линеаризовать характеристику датчика. R7 – это стандартный
компенсирующий резистор, такой например, как приборы серий
AT35 или ST35, выпускаемые компанией PRC.

Схема представлена на Рисунке 2. В ней использованы счетверенный операционный усилитель и согласованная пара транзисторов. Цепь нормализации на микросхемах IC2A и IC2B обеспечивает высокое входное сопротивление для датчика, вычитает из сигнала датчика постоянное смещение 265 мВ и усиливает результирующий сигнал. Конченой целью является преобразование отклика датчика, изначально имеющего логарифмический характер VS = lnC (C – концентрация CO2), к виду, обеспечивающему линейную связь выходного сигнала VOUT c концентрацией CO2. Для этого на микросхемах IC2C, IC2D и паре согласованных транзисторов Q1, Q2 [2] сделан антилогарифмический преобразователь, реализующий функцию elnC = C. Микросхема LM385-2.5 источника опорного напряжения 2.5 В позволяет использовать в схеме другие газовые датчики, например, TGS4161 компании Figaro [3], для которого требуется источник питания не 6 В, а 5 В. Не забывайте, что датчик потребляет весьма существенный ток.

Антилогарифмический преобразователь линеаризует датчик углекислого газа
Рисунок 3. Такой точности достаточно для 3.5-разрядного цифрового
измерительного прибора.

Для настройки схемы не требуется ничего, кроме калибровки полной шкалы с помощью подстроечного резистора R11. Точность ±0.3% (см. Рисунок 3) соответствует параметрам 3.5-разрядного цифрового измерительного прибора. Это намного лучше того, что можно было бы ожидать от датчика такого типа.

Ссылки

  1. MG-811 CO2 Sensor Module
  2. AN-30 Log Converters, National Semiconductor (TI)
  3. TGS4161 Carbon Dioxide detector

Перевод: AlexAAN по заказу РадиоЛоцман

На английском языке: Antilog converter linearizes carbon dioxide sensor

CO2 Sensor
T-electron
Россия и страны СНГ
MG811 Solid Electrolyte CO2 Gas Sensor1 711 ₽
Триема
Россия
MG8112 646 ₽
Acme Chip
Весь мир
MG811по запросу
МосЧип
Россия
MG811по запросу
Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя
Фрагменты обсуждения (только последние 20 сообщений):Полный вариант обсуждения »
  • Глянул только что на статью, там уже есть формулы.
  • На [URL="http://forums.parallax.com/discussion/139390/27929-mg811"]странице[/URL] есть решение для Arduino. Вот [URL="https://geektimes.ru/post/258874/"]здесь[/URL] на русском.
  • [b]IOPA4[/b], вы о чем? причем здесь АЦП? товарищу импульсы в попугаи перевести нужно... формулу и номиналы RC цепи он пока не привел...
  • Притом, что на выходе этого датчика (CO2 MG-811) милливольты, а не импульсы.
  • Уважаемый [b]IOPA4[/b], разве [b]salyamkamrad[/b] говорил что-то про датчик СО2? Он пишет: И куда здесь припаять АЦП? С уважением...
  • Извиняюсь, даже не понял, тема о датчике СО, просит прикрутить МК, а вопрос по RC генератору.
  • Благодарю, понемногу (хоть и с трудом) начинаю вспоминать азы элементарной математики. Но дело в том, что у меня результат измерений, это от 20 000 до 128 000. Если я e или 10 возведу в эту степень, у меня МК лопнет от натуги... Нет, это я извиняюсь, невнятно выразил свою проблему. А так, разницы вроде нет что приводить к линейному виду, данные с АЦП или со счетчика частотомера.
  • Именно, нелинейно изменяющуюся частоту в попугаях перевести к линейному виду, потом превратить это в последовательный ряд чисел от 1 до 400. Все номиналы компонентов в RC цепи привести не могу. Потому что вместо R у меня два источника тока внутри генератора, который в свою очередь замурован в микроконтроллер. Снаружи только C, емкость которого изменяется от 82 до 780 пФ. Были трудности с составлением графика зависимости емкости от угла поворота. Собственно, датчик, это КПЕ в каком-то редукторе непонятно откуда, с двигателем постоянного тока ватт на 100 и редуктором. КПЕ стоит в отдельной секции картера редуктора и приводится во вращение через несколько шестеренок (вал редуктора вращается почти на 360, а ротор КПЕ при этом на 180 градусов. На что-то подстроечное от радиостанции непохоже, уж больно мощный движок и выходной вал редуктора. Скорее всего КПЕ был датчиком угла поворота какого-то механизма, в каковой роли я его и собираюсь задействовать. Какая нелегкая заставила конструктора поставить туда нелинейный датчик, тут я совсем без понятия. Возможно, нужна была разная точность позиционирования вала в начальном и конечном положениях вала. Пришлось повозится снимая график зависимости C от угла поворота выходного вала редуктора. Для удобства график составлял не в градусах и минутах, а в процентах от полного поворота КПЕ на 180 градусов. На рисунке то, что у меня получилось: [IMG]https://www.rlocman.ru/forum/attachment.php?attachmentid=33641&stc=1&d=1520366292[/IMG]
  • По оси X угол поворота в процентах, по оси Y частота генератора в килогерцах. Отношение максимальной и минимальной частоты равно 6,53. Отношение значений функции между соседними точками по оси X (например, между 3 и 4 или 8 и 9) равняется 1,21 и сохраняется на всех участках от начала до конца оси X. Программа в которой рисовал график зависимости вроде как умеет проводить регрессионный анализ, и она мне выдала мне несколько возможных вариантов функций. Это были: 1. экспоненциальная функция 18.9740146*exp(0.1870702*x) 2. показательная функция 18.9740146*1.205712^x 3. полиноминальная функция 1.0508159*x^2-0.3136131*x+22.2076923 Теперь бы разобраться еще чего мне с этим всем делать, так чтобы получить на выходе программы в МК значения линейно зависящие от угла поворота. Скажем, с этим вот: 18.9740146*1.205712^x. Вижу, что нужно извлечь из чего-то корень и поделить что-то на что-то, но что и на что не соображу. Понимаю, что это примитив, но уже мозги устали, целую неделю ковырялся с редуктором, генератором и частотомером в МК, теперь еще это... Аж нервы стали подводить, матерюсь второй день листая справочник по математике. Смотрю в книгу, вижу фигу...
  • не понял, а на кой ты так сделал? КМК граф должен быть перевернут , на сколько я понимаю по оси Х откладывается известная величина , оная у тебя частота измеренная МК , по У у тебя должен быть угол поворота КПЕ или нет?
  • Элементарно, Ватсон! Показательные уравнения решаются где-то в 7-м классе. Нужно логарифмировать обе части уравнения, после чего показательное уравнение превращается в арифметическое (умножение превращается в сложение, возведение в степень - в умножение). Тянуть "дикие" хвосты чисел также нет смысла - вряд ли генератор имеет стабильность больше 0.1%. Это вообще квадратное уравнение. Лет 10 назад про дискриминанты знал почти каждый.
  • Кстати, хотите математический ужастик на ночь? Классная книга, читается почти на одном дыхании "Дядя Петрос и проблема Гольдбаха". Ссылку не привожу по известным причинам. Там числа становятся почти живыми, а в конце... не буду раскрывать интригу. И никакой мистики, даже очень похоже, что книга написана на основе реальных событий.
  • Проще всего вам забить значения 11 точек в массив, а если значение будем между точек, сделать математическую аппроксимацию. Есть второй вариант, почитать решение уравнения методом Гаусса. В Excel рассчитать 11 коэффициентов для ваших точек, занести их в массив (МК) и делать расчет любой точки с помощью этих коэффициентов. Когда-то была задача рассчитать остойчивость судна, нужно было танки с жидкость забить в таблицы через тонну. Танков тьма. Я сделал это с помощью Гаусса, по одиннадцать коэффициентов на танк. Вот для примера демка, восстанавливает синусоиду по 11 коэффициентам и пример библиотеки для Delphi (Pascal). Пробовал на атмеге8, даже она справляется.
  • Что-то ваша демка какая-то мутная голословная - "как видно из графика". Ни СКО, ни максимальной ошибки. Что там видно? Что верхняя синусоида ровная, а нижняя приплюснутая? Что за аппроксимация? Линейная? Сплайнами? Похвально, что вы знаете метод Гаусса, но для получения хорошей точности нужно искать не "cтроку с максимальным элементом в k-ом столбце", а ведущий элемент и переставлять не только строки, но и столбцы (учитывая при этом, что последовательность корней тоже изменится).
  • ну тогда проще сразу в массив вбить нужные ТС 401 значения угла поворота
  • Писал очень давно, более 20 лет. Действительно методом Гаусса. При расчета остойчивости точность была на уровне, проверялось неоднократно. Здесь, по-моему, говориться о 0.5%. МК это не ПК.
  • МК потребуется использовать более жирный, нужно в память записать 101 слово (16 бит), а для повышения точности 101 float (32 бита).
  • У меня обе величины известны, и частота, и угол. Неизвестным был изменяющийся по определенному закону коэффициент, который определял отношение величин по осям X и Y. Спасибо, нихачу! Последние несколько дней листал справочники по математике, и мельтешивший тама крючок интеграла навевал вполне определенные ассоциации: крюк, веревка, мыло... Мое знакомство с математической беллетристикой закончилось на детской книжке "Путешествие в Аль-джебр". Лучше пристрелите меня сразу. P.S. Был у меня товарищ, бывший одноклассник. Счетчик от дешифратора едва отличал, пару цифр на индикацию вывести не мог, МК для него вообще темный лес. Паял как будто левой ногой. Но математикой увлекался со школы, мог взять производную хоть от опустошаемой поллитры и проинтегрировать хоть шпроты в банке. К сожалению трагически погиб несколько лет назад, с тех пор у меня серьезные проблемы с математическими вопросами, которыми мне ранее, благодаря ему, заниматься почти не приходилось.
  • Спасибо, догнал! Разбил ось X на 400, по оси Y так и оставил значения от 0 до 15 000. Получил следующий закон зависимости Y от X: Y(X)=1897.4014552*1.0046877^x Перенес число 1897.4014552 в левую часть путем деления на него значения частоты (от 2000 до 12800 в данном случае). В правой части осталось 1.0046877^x. От x избавился вычислением логарифма из левой части и из 1.0046877. Правая часть превратилась в константу 0,004676 на которую я делю левую часть уравнения, получая числа в диапазоне от 0 до 400 пропорционально с углом поворота датчика. Фсе, задача решена. Попутно отвалилось пара разрядов, что мне только на руку, потому как МРЗ частотомера дергался как припадочный, иногда передавая свои конвульсии второму разряду. Час назад выставил угол поворота (в попугаях, конечно) равный 360, и весь этот час цифры стоят как вкопанные. Чуть позже подую на железяку феном, а потом снежком присыплю, посмотрю, может от кварца в обвязке МК получится избавится.
  • [B]AMC[/B], [B]DmitriyVDN[/B], [B]IOPA4[/B], [B]САТИР[/B], спасибо большое за помощь. Без вас я еще очень долго ковырялся бы со всем этим.
Полный вариант обсуждения »