Датчики и микроконтроллеры. Часть 2. Климат-контроль

3f134ad771154faf95c5d1b9b583d4ea.jpgПродолжим рассказ о датчиках и в этой части рассмотрим разнообразные датчики самых востребованных DIY-сообществом типов — это многочисленные датчики температуры и датчики влажности. Кроме того, затронем датчики давления воздуха и присутствия газов. Приведем описание номенклатуры датчиков и сошлемся на полезную литературу.СодержаниеЧасть 1. Мат. часть. В ней рассматривается датчик, не привязанный к какому-то конкретному измеряемому параметру. Рассматриваются статические и динамические характеристики датчика.Часть 2. Датчики климат-контроля. В ней рассматриваются особенности работы с датчиками температуры, влажности, давления и газового составаЧасть 3. Датчики электрических величин. В ней я коснусь измерения электрических параметров: напряжения, тока, мощности, частоты, коэффициента мощности и искажений5. датчики температуры [embedded content]Ни один проект по автоматике системы климат-контроля не обходится без датчика температуры, главная задача которого — с необходимой точностью выдавать температуру требуемого объекта, будь то воздух в помещении, охлаждающая жидкость, прожаренный стейк или расплавленный металл (В климат-контроле, ага).5.1 Термопары Генераторные датчики температуры, представляющие собой два проводника различных материалов, спаянные с одного конца друг с другом.Главное преимущество термопар — их широкий диапазон температур. Ограниченный, по сути, абсолютным нулем и температурой плавления металлов — т. е. способен измерять там. Где другие датчики просто бессильны — от -270 до +1800 градусов цельсия и выше.Термопары бывают разные и в зависимости от типа используемых материалов имеют различный диапазон рабочих температур.Их конструкция также зависит от применения. Например, в одной из лабораторий моей родной кафедры валялись вот такие 200–300 мм дрыны: c7c99a9c6e5e4e8cb480c8faef3b0b58.pngРисунок 1 Термопара типа К для печей сопротивленияА вот так выглядят всеми известные термопары типа К, которые идут в комплекте с мультиметрами (фото из моей коллекции): 81119e0e5e4b4c62a033770f017c33fd.jpgРисунок 2: Термопары типа К для мультиметров.В ГОСТ Р 8.585–2001 перечисляются следующие типы термопар с их составом, буквенным обозначением и рабочим диапазоном (в скобках указан коэффициент термоЭДС для 25 градусов): платинородий-платиновые — ТПП13 — Тип R, диапазон -50 +1600 С (9 мкВ/С). платинородий-платиновые — ТПП10 — Тип S, диапазон -50 +1600 С (6 мкВ/С). платинородий-платинородиевые — ТПР — Тип B, диапазон 0 +1800 С железо-константановые (железо-медьникелевые) ТЖК — Тип J, диапазон -210 +1200 С (52 мкВ/С) медь-константановые (медь-медьникелевые) ТМКн — Тип Т, диапазон -270 +400 С (41 мкВ/С) нихросил-нисиловые (никельхромникель-никелькремниевые) ТНН — Тип N, диапазон +270 +1300 С (27 мкВ/С) хромель-алюмелевые — ТХА — Тип K, диапазон -270 +1372 С (41 мкВ/С). хромель-константановые ТХКн — Тип E, диапазон -270 +1000 С (61 мкВ/С). хромель-копелевые — ТХК — Тип L, диапазон -200 +800 С медь-копелевые — ТМК — Тип М, диапазон -200 +100 С сильх-силиновые — ТСС — Тип I (не представлена в ГОСТ, есть в википедии) вольфрам и рений — вольфрамрениевые — ТВР — Тип А-1, А-2, А-3, диапазон 0 +1800, (+2500 для А-1) С. Сами по себе являются высокоточными датчиками (точность вплоть до ±0,01 градусов), но такую точность весьма непросто получить.В основе работы датчиков термоэлектрический эффект, открытый в 1821 году немецким физиком Томасом Зеебеком. Его суть заключается в том, что если спаи двух разнородных материалов, образующих замкнутую электрическую цепь имеют разную температуру T1 и T2, то в цепи появляется электрический ток, направление которого зависит от знака разности температур.bbf7ec682f3548118ce24e55caae831a.pngРисунок 3: Термопара.Но здесь появляется первая проблема — ЭДС зависит от разности температур между горячим и холодным спаями, поэтому температуру холодного спая следует знать с необходимой точностью, чтобы определить температуру горячего конца.Проблему добавляет и то, что фактически, точки подключения термопары к измерительной системе также являются точками спая двух разных металлов, что вносит свою погрешность. Поэтому поместим оба холодных конца рядом, дабы выровнять их температуру и будем контролировать ее еще одним датчиком: 3fcc5f5939dc4b1e800f8aa091b5cc68.pngРисунок 4: Программная компенсация холодного спаяВ этом случае, измерив с конечной точностью абсолютным датчиком температуры температуру холодного спая мы программно сможем ее скомпенсировать. Почему нельзя сразу воспользоваться одним абсолютным датчиком? Покажите мне еще один датчик, способный измерить температуру расплавленного металла.Если абсолютного датчика под рукой нет, а измерять надо, возьмем еще одну термопару, подключим ее последовательно в противофазе и поместим в среду, температура которой нам известна — например вода со льдом: 5572466509814e4fbe9d62d273f99e32.pngРисунок 5: Аппаратная компенсация холодного спаяНо на мой взгляд при наличии широкодоступных точных датчиков температуры использовать бачок с тающей водой, требующей постоянного контроля, немного не технологично. Поэтому в документации встречаются варианты термостатированных холодных спаев, в которых с помощью точного термостата поддерживается заданная температура.

К слову, термостатированный элемент — не такая редкость. Например, генераторы опорного сигнала «гиацинт», стоящие в советской измерительной аппаратуре представляют собой кварцевый резонатор, обмотанный проволокой высокого сопротивления и помещенный в маленький сосуд Дюарда, в котором поддерживается определенная температура. В результате достигается стабильность частоты до 7–8 знака после запятой.65e8816457cd4310b742938bf72234cb.jpg С проблемой относительности разобрались, теперь попробуем снять показания с термопары. И тут нас поджидают еще две проблемы: Проблема номер раз — термоЭДС измеряется в микровольтах. Например, для термопары типа K температурный коэффициент составляет 41 мкВ/градус. Это означает, что милливольтами запахнет только градусов через 25 разницы температур.Напомню из прошлой части, что 12-разрядный АЦП при опорном напряжении 3,3В имеет чувствительность 800 мкВ. т. е. В нашем случае 20 градусов/деление. Неплохая однако погрешность. Конечно нужно учитывать малый рабочий диапазон выходного напряжения термопары и ставить усилители на базе ОУ, или включать усиление в самом АЦП.Там возникнут другие сложности вроде точности оцифровки АЦП, собственных шумов аналоговых трактов ОУ и АЦП и т. п. В последующих главах мы подробно рассмотрим вопрос отношения сигнал/шум, а пока можете почитать книгу Data Conversation Handbook, глава 2Будем следовать одной истине — использовать прецизионные и малошумящие ОУ и АЦП. В списке дополнительной литературы есть множество различных вариантов схем подключения. Однако одна из наиболее распространенных схем в большинстве массовых измерительных приборов — с использованием терморезистора: b529e646bed74703a7504b8c246c8a33.pngРисунок 6: Использование терморезистора для компенсации температуры холодного спаяПроблема номер два — термопара нелинейна. Нелинейность выглядит следующим образом: b94e18f3bb594a5180f9d795d9bb91c1.pngРисунок 7: Нелинейность термопарыНо благо все в курсе этой нелинейности, каждые поверенные измерения аккуратно занесли в табличку и высчитали точные коэффициенты полиномов вида2c90ef97e0ca4e4dbc92dd06bef36297.jpg (1)Для расчета температуры исходя из значения ЭДС и наоборот: 3ed652f5130640dab01e9409a228d2a5.jpg(2)Для каждого типа термопары в ГОСТ 8.585–2001 заботливо приведены все необходимые коэффициенты аппроксимирующих полиномов для температур относительно 0 градусов цельсия. Вот список коэффициентов полинома для распространенной термопары типа К: 3edd38e6e7a54ecbb5878ad845f9bc02.pngРисунок 8: Список полиномов для термопары типа К в диапазоне температур от 0 до 500 градусов цельсияВ принципе, особой проблемы посчитать итоговое значение труда не составит, однако если ваш холодный спай болтается в воздухе при неизвестной температуре — кому это надо? Как итог — термопара — один из лучших датчиков для точного измерения очень горячих, либо очень холодных вещей.А в моей любимой книге детства — «Радиоэлектронные игрушки» Войцеховского, можно найти описание конструкции термогенератора, от которого предлагается запитать, например, транзисторный радиоприемник. А на марсе от термогенератора аналогичной конструкции, только самую малость потехнологичнее, питается марсоход Curiosity — На Geektimes есть обзорный пост про РИТЭГиbc2f6d6cd2864a62b6b27c17f7cb637d.pngРисунок 9: Темроэлектрическая батарея 0,6В 8 мА

Минутка бессмысленной и беспощадной практики. У нас есть отладочная плата на микроконтроллере ATmega1280, пара термопар и желание измерить температуру с хорошей точностью. И у нас это не получится.АЦП контроллера — 10-разрядный, минимальное опорное напряжение может быть выставлено в 1,1В.Тогда, чувствительностью АЦП составит: 853e0a0e93e342b8ae871eaaa8680af0.jpg (3)Аналоговые входы АЦП позволяют работать в дифференциальном режиме с максимальным усилением в 200 раз. Правда с таким усилением опорное напряжение может быть только 2,56В, да и эффективных остается лишь 7 разрядов. Тогда чувствительность АЦП составит: 634cd375d17a4f41b26780fcb3a7d405.jpg (4)Что примерно в 2,5 раза меньше чем чувствительность термопары типа К (41 мкВ). т. е. Теоретически, точность измерительного тракта составит не лучше ± 2,5 градусов. Практически, нам помешают шумы. А их согласно таблице 31–8 датащита целых ±10 знаков — т. е. итоговая точность составит не лучше ±25 градусов. Хе-хе. Это мы еще не учли два полуметровых провода до термопар, отсутствие должной фильтрации аналогового питания и питание всей системы от неплохо шумящего USB. Дай скотче хотя бы в ± 50 градусов уложиться.Напишем программу, которая будет работать на прерываниях (я набросал ее для одного из комментариев). Средой Arduino воспользуемся как загрузчиком: f71ef7f93dfc483eb184aaaa7d188768.jpgРисунок 10: Натурный эксперимент с двумя термопарами, стаканами и скрепкамиИсходный код: void setup () { autoadcsetup (); }

void loop () {

} float coeff[] = {0, 2.508388e1, 7.860106e-2, -2.503131e-1, 8.315270e-2, -1.228034e-2, 9.804036e-4, -4.413030e-5, 1.057734e-6, -1.052755e-8 };

void autoadcsetup (){ //set up TIMER0 to 61Hz //TIMER0_OVF will be the trigger for ADC /*normal mode, no prescaler 16MHz / 256 /1024 = 61 Hz*/ TCCR0B = (1 << CS02) | (1 << CS00);//timer frequency = clk/1024 //set ADC. ADMUX = (1 << MUX3) | (1 << MUX1)| (1 << MUX0) | (1 << REFS1)| (1 << REFS0);//10-bit mode, ADC9-ADC8 channel, Gain 200, 2.56V ref ADCSRA = (1 << ADEN) | (1 << ADATE) | (1 << ADIE) | (1 << ADPS2)| (1 << ADPS1)| (1 << ADPS0);//TUrn ADC On, trigger enable, Interrupt enable, sysclk/128=125kHz_ADC_clk=9.6kHz conv freq(13ticks per conversion) ADCSRB = (1<< ADTS2) | (1 << MUX5);//Auto trigger source //set UART to 8-n-1 1Mbod: UBRR0H = 0;//9600(use Examples of Baud Rate Setting table from datasheet) UBRR0L = 103;//9600 UCSR0B = (1<>1)*2560/512;//calc voltage in mV float edc = static_cast(result);//convert to float for (uint8_t i = 0; i < 10; i++){ t += coeff[i] * pow (edc, i); } UDR0 = static_cast(t); } } Для кипятка вокруг одной термопары и стакана с тающим льдом вокруг другой на выходе сплошная каша со средним значением первых двух строк 124 градуса, что очень даже хороший результат — будем считать что в точность ±25 градусов мы уложились.40260020aba24fa39678199ba163afa1.pngРисунок 11: Сырой вывод данныхРазумеется, практической значимости данная халтурка не представляет и для измерения температуры с помощью термопары нужно использовать более точные АЦП. Хорошим встроенным АЦП обладает к примеру микроконтроллер ADuCM360, причем он рассчитан именно на столь малые входные сигналы.5.2 Термометры сопротивления и терморезисторы Как известно, сопротивление металла изменяется от температуры окружающей среды. Этот эффект используется для проведения высокоточных (до тысячных долей градуса) измерений температуры с помощью термометров сопротивления. Будучи сделанным не из металла, а из полупроводника, мы получим терморезистор.00fa14d9166c4238a9d19569385cb261.pngРисунок 12: Платиновые RTD от HoneywellТермометры сопротивления позволяют работать в достаточно широком диапазоне температур — от -200 до 850 градусов.У термометра сопротивления имеется две основные характеристики: Базовое сопротивление при определенной температуре. Рекомендуемое — 10, 50, 100, 500, 1000 Ом… Температурный коэффициент сопротивления в тысячных в пропромилле на градус кельвина (ppm/K). Температурный коэффициент сопротивления — это отношение относительного изменения сопротивления к изменению температуры: 0ca43834d7e040dbb7a0c75b57c52020.jpg(5)Таким образом, зная текущее сопротивление терморезистора и зная его ТКС и номинальную температуру, можно вычислить текущую температуру: ef63c9f443044c6690402b2cecff69fd.jpg(6)На термометры сопротивления имеется ГОСТ Р 8.625–2006, в котором нормируются термометры из платины (ТКС = 0,00385 и 0,00391), а также из меди (ТКС 0,00428) и никеля (ТКС 0,00617). Номинальным сопротивлением для термометров является сопротивление при температуре 0 градусов. Также как и термопары термометры сопротивления имеют некоторую нелинейность, но в ГОСте заботливо приведены коэффициенты полинома. К слову — гораздо более простые, чем для термопар.Например, для платинового термометра с ТКС = 0,00385 и диапазона измерений от -200 до 0 градусов будет уравнение вида: 888d0ca857184793a02a0164f38d525b.jpg(7)А для диапазона 0–850 градусов вида: 79563b44d94c4de19a3d90fe45c4d89b.jpg (8)Со следующими значениями коэффициентов: dd51323356904f138a18b1af93e8dcbf.jpg(9)Одни из популярных — эталонные платиновые термометры серии 700 от Honeywell. Хотя по стоимости платиновые термометры не из дешевых — от 5$ и выше в зависимости от диапазона температур и точности прибора.Измерить сопротивление можно различными методами. Наиболее простой и рекомендуемый ГОСТ-ом — измерительный мост с источником напряжения. С другой стороны, подключение к источнику тока и использование дифференциального входа АЦП даст линейность измерений.e7eea8f00e1240689337d41dca7c45d0.pngРисунок 13: Различные способы подключениях двухпроводных RTDПроцитирую тов Stross из комментариев к предыдущей части: Мост можно рассмотреть как два резистивных делителя, включенных параллельно. Один из них задает «опорное напряжение» для второго. И таким образом, при использовании моста вы будете своим дифференциальным АЦП измерять напряжение на делителе не относительно нуля, а относительно некой опоры. Это хорошо скажется на чувствительности — вы сможете задать АЦП больший коэффициент предусиления и добиться того, что рабочий диапазон АЦП будет соответствовать узкому диапазону сопротивлений.

С другой стороны Ваш АЦП в режимах усиления входного сигнала не должен шуметь как одинокий ручей текущий с горы фудзи тракторВ приложении к разделу есть множество полезных ссылок по подключению RTD и способам повышения точности.Одна из проблем металлических термометров сопротивления — низкий ТКС, за счет чего необходим измерительный тракт с высокой чувствительностью. Но это лишь конструктивная проблема — измерить сопротивление с высокой точностью в отличие от очень малых токов и напряжений не представляет особого труда.Если нам не нужна высокая точность и достаточно ±1–2 градусов, то можно воспользоваться полупроводниковыми терморезисторами, имеющими на порядки более высокий ТКС. Например терморезисторы серии KTY84 от NXP имеют ТКС=0,61. С другой стороны термисторы имеют меньший диапазон рабочей температуры порядка -40=300 градусов.А еще терморезисторы гораздо более нелинейны. Но в датащитах опять таки заботливо приводятся значения ТКС и номинального сопротивления для различных значений температуры: 6772a559e38747fcba7d830194849bc1.pngРисунок 14: Таблица соответствия ТКС, номинального сопротивления и температурыПо этой таблице не составит особого труда построить кусочно-линейную функцию и использовать ее для определения сопротивления.5.3 Линейные аналоговые преобразователи 1806e43487294995954de69a37be6546.pngРисунок 15: линейный аналоговый датчик LM35DZПерейдем к более интегрированным решениям. Рассмотрим микросхему аналогового линейного датчика температуры. Эта микросхема подключается к источнику напряжения и дает на выходе аналоговый сигнал, линейно зависящий от температуры с наклоном 10–20 мВ/К. Диапазон измеряемых температур намного уже чем у ранее представленных датчиков и составляет в среднем -40+125 градусов. Так как наш простенький 10-разрядный АЦП имеет чувствительность 1 мВ, его с лихвой хватит, чтобы считать показания с данного датчика.Еще одно полезное свойство данных датчиков — их выходное напряжение не зависит от питающего напряжения, которые может изменяться в широких пределах — например, для датчика LM35 от National Semi диапазон питающих напряжений — 4–30В. Точность датчиков — 1–2 градуса. Так выглядит график точности датчика в зависимости от температуры: 6d2c946bcb32470e98ac98cf0aadff22.pngРисунок 16: Точность датчика в зависимости от температурыБольше про этот датчик особо сказать нечего, так что расходимся.5.4 Цифровые датчики температуры Цифровые датчики температуры за своим огромным ассортиментом скрывают удобные интегрированные решения, предоставляющие возможность получать показания температуры в готовом виде посредством цифровых интерфейсов.Как правило, цифровые датчики температуры подключаются по интерфейсам SPI и I2C. Что касается меня — датчики температуры — это низкоскоростные устройства и тратить на них SPI расточительство.В качестве примера рассмотрим комбинированный датчик температуры и влажности SHT108169e66e08bd427eab0bb9fdd425d189.pngРисунок 17: Датчик SHT10 общий вид8d25b5f552d04486ad0a07b7afe8a0df.pngРисунок 18: Погрешность датчикаНо и этот датчик не без косяка — его интерфейс «оптимизирован». Типа для того, чтобы его было удобнее считать. А еще к нему нельзя адресоваться как к I2C устройству.50f2272542974896ba777a42e685f747.pngБлаго датчик позволяет подключать себя совместно с другими устройствами и нужно лишь программное переключение протокола общения. На нем остановимся чуть подробнее: Для старта передачи команды необходимо передать стартовую последовательность: 4f824c1771534df4beceb00954cd52d0.pngРисунок 19: Стартовая последовательностьПосле стартовой последовательности передается байт команды, состоящий из 0 бит адреса (поддерживается только адрес 000) и 5 бит команды.8e450e47a4ba4932908703130420bc51.pngРисунок 20: Список командПосле отправки команды на измерение температуры или влажности, в зависимости от разрядности измерений 8, 12 или 14 бит, процедура измерения займет 20, 80 или 320 мс. По завершению процесса измерений датчик притянет линию DATA в ноль и уйдет спать. Как только контроллер получает данный сигнал, путем тактирования линии SCK можно получить два байта данных и байт контрольной суммы (если она активирована), причем по окончанию приема каждого байта необходимо притягивать контроллером притягивать землю в ноль. Дапнные передаются с правым вырваниванием, т. е. Для 14-разрядного значения старший бит данных появится только на 5 тик линии SCK. За подробностями отправляю к датащиту.Датчик температуры имеет линейную характеристику и полученное значение датчика пересчитывается с учетом напряжения питания и наклона характеристики: fd289d57b3f24b78bb1af52113aa2775.pngРисунок 21: Расчет температурыРазумеется, есть датчики температуры с нормальным I2C интерфейсом. Например, LM75A от NXP.Его диаграмма считывания данных подчиняется базовым принципам I2C: a7a1f4e10433479fbf54d7363e1bda12.pngРисунок 22: Считывание данных температуры с датчика LM75Это 11-разрядный датчик, с разрешением 0,125 градуса цельсия, выходные данные хранятся в двух регистрах данных, имеющих определенный адрес. С помощью команд прогтокола I2C для нашего устройства, имеющего адрес 1001XXX (три младших бита выставляются пользователем и позволяют подключать к одной шине до 8 таких датчиков) выставляем указатель адреса регистра с которого начнем производить считывание и с помощью команды чтения считываем два регистра. Полученное знаковое значение умножаем на 0,125 и получаем итоговое значение температуры в градусах цельсия. Удобно.5.5 DS18B20 bbe6fb07afda42fca350731aaa7cc201.pngРисунок 23: Цифровой датчик DS18B20Данному датчику стоит уделить особое внимание. Это 12-разрядный датчик температуры с рабочим диапазоном -55 + 125 градусов цельсия, подключаемый по протоколу 1-wire. Его главное преимущество — этих датчиков можно на одну линию навешать многие десятки штук и все они будут работать. Датчик весьма точный ± 0,5 градуса, однако медлительный — время измерения составляет 750 мс.Внутри датчика 9 регистров, в регистрах 0 и 1 хранится значение измеренной температуры, в регистрах 2 и 3 могут быть использованы как память общего назначения, 4 регистр хранит конфигурацию согласно следующей таблице: 006c32de0363490bb31a1211e83e4e15.pngРисунок 24: Назначение бит конфигурационного регистраДевятым байтом регистровой памяти идет CRC. Рассчитываемый по следующей формуле на основании первых 8 регистров: e8d40403ed1f45fe9a5b19371b973598.jpg(10)Для того, чтобы запустить команду вычисления температуры необходимо отправить команду 0×44. По завершению процесса измерения данные будут лежать в первых двух байтах регистровой памяти вплоть до следующего измерения. Считывание 9 байт данных регистровой памяти осуществляется путем подачи команды 0xBEВ целом данный датчик, имея весьма демократичную цену, позволяет, используя длинные линии связи, организовать сеть датчиков, покрывающую ту или иную площадь. Например, можно сеткой разместить датчики в теплице и контролировать температурный градиент внутри нее.5.6 ИК-датчик температуры Данный обзор был бы неполным без бесконтактных ИК датчиков температуры. Я вскользь упомянул о нем когда рассказывал о плате CC3200-launchxl — там установлен именно такой датчик.0cc364ed78bb4352a0645abeab8f1bf1.pngРисунок 25: ИК-термодатчикЭти датчики состоят из тонкой пластинки. Поглощающей ИК излучение, вследствие чего происходит ее нагрев, который детектируется описанными выше термодатчиками. Например в датчике TMP006 от Texas Instruments судя по изображению внутри набор последовательно-включенных термопар, сигнал с которых снимается и преобразуется в цифровой с доступом по I2C. Хозяйке на заметку — этот датчик измеряет температуру от -40 до +125 градусов с точностью ± 1,5 градуса. Я, как обладатель этого датчика на отладочной плате, понемногу с ним играюсь.Есть и аналоговые решения. Например датчики TPS333 от Excelitas имеют внутри себя встроенный термистор.45eb83b7d1ed4f6a9514c29f2be14097.pngРисунок 26: датчики TPS333 от ExcelitasНаиболее интересны конечно же бесконтактные ИК матрицы, на основе которых делаются тепловизоры. Например датчик D6T-44L-06 от Omron за 35 долларов представляет собой матрицу 4×4 бит, с помощью которой можно измерить температуру от 5 до 50 градусов на расстоянии до 3 метров.c7a0ba716bca411e9695b8c4720be2e4.pngРисунок 27: Область детектированияВот тут есть классная видеопрезентация от производителя[embedded content]Разрешение датчика конечно так себе, да и диапазон температур не шибко большой, но свою нишу такая матрица имеет, да и цена лично меня порадовала. Можно взять на заметку.5.7 Дополнительная литература 6 Датчики влажности [embedded content]Ни одна система климат-контроля не будет полноценной без измерения относительной влажности воздуха, так как от нее зависит комфорт человека, находящегося в контролируемом помещении. Думаю многим знаком график зоны комфорта: 37337670d2524d2f9c7c4a443de0b3c3.pngРисунок 28: Зона комфорта в помещенииВ России допустимые значения температуры и влажности в жилых помещениях регламентируются СанПиН 2.1.2.2645–10 «Санитарно-эпидемиологические требования к условиям проживания в жилых зданиях и помещениях»(Приложение 2).Задача датчиков влажности — определить относительную влажность воздуха. Относительная влажность воздуха — это отношение парциального давления водяного пара в воздухе к равновесному давлению насыщенных паров при данной температуры: 665e77660e144b39b9695aed08ad7216.jpg(11)Где 0f32836d6cdd46e99051f6a4dcb9ea03.jpg — парциальное давление паров воды в воздухе, a46a72741b104ed880032a058a0331f4.jpg — равновесное давление насыщенного пара.Есть несколько способов измерить влажность воздуха.Конечно же стоит упомянуть классические психрометры — сборка сухого и влажного термометра, по разности показаний которых довольно точно определяется текущая влажность воздуха. Никто не запрещает взять два датчика температуры, один из них снабдить сырой ваткой и на основе их показания вычислять влажность.56d722f79e2042b4a166adf169df59e4.pngРисунок 29: ПсихрометрДалее следуют механические гигрометры, где в качестве чувствительного элементы выступает обезжиренный волос либо полимерная пленка, изменяющие свою длину в зависимости от влажности.Но нам больше интересны решения с электрическим сигналом на выходе.Такие сенсоры реагируют на влажность изменением емкости или сопротивления гигроскопичного материала, насыщаемого влагой в количестве, пропорциональном парциальному давлению пара измеряемого воздуха. Широкое распространение получили именно емкостные датчики. Поэтому только их мы и рассмотрим.b53f69bd5547425b9d69534d3e19ba26.pngРисунок 30: Структура датчика влажности. не загрязняйте верхний слой — просят нас. 6.1 Датчики влажности с емкостным выходом Самый простой по своей сути датчик. Представляет собой конденсатор с изменяемой емкостью. Емкость такого конденсатора в первую очередь зависит от влажности. Но не последним показателем является температура воздуха. Например, для датчика серии HCH-1000 от Honeywell чувствительность датчика составляет в среднем 0,6 пФ/%RH. При этом температурный коэффициент составляет 0,16пФ/градус. Наглядно, график изменения емкости выглядит следующим образом: f94c858d1fae4622aab67352313752d0.pngРисунок 31: Изменение емкости датчика HCH-1000В отличие от сопротивления. Емкость измерить гораздо сложнее. Точные профессиональные приборы — измерители иммитанса (RLC-метры) — не самое дешевое оборудование.Простой способ измерения емкости — определение скорости заряда и разряда RC цепочки. Определяя с необходимой точностью постоянную времени заряда и зная точное сопротивление резистора, мы можем определить емкость конденсатора.796055a40efa4c84a6d1046a99459497.pngРисунок 32: заряд конденсатораТак как наша емкость изменяется в пределах 300–360пФ, для получения постоянной времени в 1–2 мс (что будет легко поймать большинством таймеров и АЦП) потребуется сопротивление 6e34960a76bf484b94099feacfd861fd.jpg. При таком методе измерений нам требуется с необходимой точностью измерять текущий уровень заряда конденсатора, а также отмечать время, за которое конденсатор достигнет значения 63,2%. Процедуру для надежности можно повторить несколько раз.Есть еще один способ, правда менее стабильный: раз мы измеряем период, то пусть у нас будет импульсный сигнал. Пусть емкостной датчик отвечает за частоту генерации сигнала. Изменяется влажность — изменяется выходная частота. На выходе буферного элемента D1.3 будет сигнал, частота которого зависит от емкости нашего датчика. Единственный вопрос к точности пороговых напряжений логических элементов. К слову, точность самого датчика HCH-1000 ±2%82237b8a112e41a58b05a09f242e0c6d.pngРисунок 32: Простой генератор на логикеНе забудем, что для повышения точности показаний необходимо учитывать текущие показатели температуры.6.2 Датчики влажности с выходом по напряжению Электронная промышленность уже поработала за нас и создала приборы, выдающие готовый аналоговый сигнал. Примером таких датчиков являются датчики HIH-4010 от Honeywell, с точностью ± 8%bce2f0ab03d949c4ab39f1830afc9237.pngРисунок 33: Датчики влажности с выходом по напряжению. Общий видДля таких датчиков в датащите указываются графики зависимости выходного напряжения от влажности: 0db56583b53249c58638d3309dfb1635.pngРисунок 34: Зависимость выходного напряжения датчика от влажностиС подобными датчиками часто поставляется уникальный для каждого экземпляра калибровочный паспорт, в котором указаны значения выходного напряжения для двух различных значений влажности при определенной температуре. Достаточность указать эти данные в программе и мы получаем готовые калиброванные значения датчика.6.3 Датчики влажности с цифровым выходом Последним нашим датчиком в этой категории будет цифровой датчик влажности.Один из них мы уже рассмотрели в секции датчиков температуры — это SHT1x. Однако, существует множество комбинированных датчиков влажности и температуры и честно говоря мне не попадались цифровые чисто датчики влажности, что впрочем неудивительно — одно без другого никуда.Продолжим наш дискус касаемо расчета влажности с датчика SHT1x. Получаемые с этого датчика необходимо преобразовать. В датащите указаны необходимые формулы: 1e585d95342140ddb6fd25d03c78fcdd.jpg(12)И коэффициенты полинома: 51c76f617dac4c68b13fa841ad59b97d.pngРисунок 35: Коэффициенты полинома для версии V4Следует отметить, что относительная влажность зависит от температуры и требует корректировки по следующей формуле: 081bc24d1c354b63bd5bbac94c6b6cc1.pngРисунок 36: Корректировка относительной влажности в зависимости от температуры7 Датчики давления [embedded content]Датчик давления — это датчик, регистрирующий давление измеряемой среды, которой может быть воздух, газ или жидкость.В зависимости от задачи, может потребоваться измерять как абсолютное давление, давление относительно атмосферного давления, и дифференциальное давление — т. е. разницу давлений между двумя точками измерения.0722dba56f2d4cc7b370e64fc1e123dd.jpgРисунок 37: Давление.В технических характеристиках датчиков могут быть указаны разные единицы измерения: миллиметры ртутного столба — mm Hg; Паскаль — Па, Pa; Фунт-сила на кв. дюйм — Psi Бар — bar Физическая атмосфера — атм Для оценки рабочего диапазона датчика следует помнить, что 1 атм — это примерно 1 бар или 100 кПа; аналогична 760 мм ртутного столба и 15psi. Вторым после kPa в датчиках встречается psi, так что просто запомним, что 100psi — это примерно 7 атм.В википедии присутствует замечательная таблица с точными коэффициентами перевода из одной единицы измерения в другую: https://ru.wikipedia.org/wiki/Единицы_измерения_давленияДатчик давления представляет собой чувствительный элемент, помещенный между двумя камерами — в одной присутствует измеряемое давление, в другой — опорное. В абсолютных датчиках воздействие на кристалл идет только с одной стороны. Рассмотрим схему датчика MPX2100 от Freescale в разрезе: c0d70d9d49854262bd20c6b1616c8c05.jpgРисунок 38: Конструкция относительного и абсолютного датчика давленияНа рисунке показан чувствительный элемент, который под разницей давлений изменяет свои свойства. Есть несколько видов чувствительных элементов. Один из самых распространенных — тензорезистивный — изменение сопротивления материала под воздействием деформации. Часто в качестве материала такого датчика берется монокристалл кремния. Одной из проблем является зависимость сопротивления датчика от температуры, но, как правило, во всех датчиках присутствует термокомпенсация.Другой чувствительный элемент под воздействием давление изменяет свою емкость. В секции датчиков влажности мы уже обсудили, что данный метод проблематичен для последующих измерений, да и датчики давления с емкостным выходом мне ни разу не попались.Также есть пьезоэлектрический эффект, где чувствительный элемент генерирует напряжение под воздействием определенного давления. У меня кстати есть один такой — он установлен в зарядной станции ЗД-6 комплекта индивидуальных дозиметров ИД-1. Зарядное устройство содержит 4 параллельно соединенных пьезоэлемента и механический усилитель, давящий на пьезоэлементы; давление создается вращающейся ручкой. Он используется для генерации напряжения в 180–250В для заряда дозиметра.7a74458dcf474cff9fc2b0a59de28a59.jpgРисунок 39: Измеритель дозы ИД-1Есть датчики и других типов — индуктивные, резонансные и прочие, но они встречаются в очень промышленных объектах и мы их рассматривать в рамках данной статьи не будем.

7.1 Аналоговые датчики давления На выходе аналоговых датчиков давления присутствует уровень тока или напряжения, которое

© Habrahabr.ru