Измерительные цепи

DI HALT
1 Июнь 2009

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

Выход с датчика может быть трех основных видов (если кто вспомнит еще, добавьте в комментах): напряженческий, токовый и резистивный
Как понятно из названия, тут выходная датчик превращает колебания измеренной величины в колебания напряжения, тока или сопротивления. Осталось только эти величины привести к виду удобному для запихивания в АЦП микроконтроллера.

Выход по напряжению:
Например, токовый шунт — замеряет ток, а падение напряжения на нем вычисляется по закону Ома U = I × R и его легко измерить.

Тут все просто — АЦП замеряет напряжение, поэтому вроде бы ничего особенно и не надо, достаточно завести напрямую. Но обычно не все так просто. Проблем тут может быть три:

Разберем каждый из них.

Напряжение слишком велико.
Самый простой способ — поделить напряжение на резистивном делителе:

Раз и пополам. Или в любом соотношении какое заблагорассудится, все зависит от отношения резисторов верхнего и нижнего плеча делителя.

Напряжение слишком мало.
Некоторые датчики выдают жалкие милливольты. Вот что с ними делать? Правильно! Усиливать! Для этих целей существуют операционные усилители. Эдакие аналоговые калькуляторы, заточенные под математические операции.
Входное сопротивление у операционного усилителя очень велико, близко к бесконечности. А коэффициент усиления составляет десятки тысяч. Чтобы его обуздать, применяют отрицательную обратную связь.

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

В качестве операционного усилителя я обычно использую OP297, просто потому, что они у меня есть, а новые покупать дорого. Прецезионные усилки - это тебе не микроконтроллер, такая козявка стоит рублей 150.

Но надо помнить, что максимальное и минимальное выходное напряжение его будет ниже, чем напряжение питания, где-то на 1V. Так что если запитаешь его от 5V, то получишь максимальный диапазон изменения выходного напряжения от 1 до 3V. Если тебя это не устраивает, то подбери усилитель, у которого в характеристиках есть параметр rail-to-rail — это означает, что он может работать от минимума до максимума питания, а, в идеале, еще и с однополярным питанием — так корректней.

Напряжение имеет малую величину изменения.
Простой пример — температурный датчик LM335Z. Это термостабилитрон с характеристикой в 10mV на градус Кельвина (°K). Учитывая, что ноль по Цельсию - это 273°K, то напряжение, выходящее с него при комнатной температуре, будет:
(25 + 273) × 0.01 = 2,98V
Нетрудно заметить, что на каждый градус у нас будет изменение всего на 0.01V. Причем, само выходное напряжение измеряется вольтами, так что и напрямую его не подашь — все разряды АЦП будут забиты этими фоновыми 2.9V и не увеличишь, так как напряжение изначально большое. Остается только одно — вычесть из этого напряжения излишки, а остаток умножить на нужное число. Излишек определяется просто — берем минимальное значение, которое нам нужно, скажем, −25°C и считаем напряжение для этой температуры:
(273 − 25) × 0.01 = 2.48
Вот эти 2.48 нам нужно вычесть. При этом минимальное значение температуры будет для нас показывать 0V.
Теперь надо определить нужный нам максимум. Скажем, 100°C это предел, выше которого замерять нет смысла. Вычисляем напряжение на 100 градусах:
(273 + 100) × 0.01 = 3.73
Теперь вычитаем нашу нулевую поправку:
3.73 − 2.48 = 1.25
Итак:
−25°C ⇔ 0V
+100 градусов ⇔ 1.25V.

Это уже кое что. Но обычно АЦП замеряет от 0 до 5V, глупо было бы забивать на 3/4 шкалы. Так что результат можно смело умножить на четыре и уже в таком виде можно загнать в АЦП.

Во сколько математики, осталось ее воплотить. Первым делом нам потребуется источник напряжения на 2.48V.

Если задача не требует особой точности, то вполне сгодится стабилитрон, скажем на 3.3V. Берем и получаем из 5V наши 3.3, а потом прогоняем их через многооборотный потенциометр, которым можно подстроить напряжение с точностью до тысячных долей вольта. Конечно, можно было бы стабилитрон вообще выкинуть и сразу же делить потенциометром 5V для получения 2.48, но это менее точно и наше эталонное напряжение будет зависеть от колебаний питающего напряжения, а это не есть Good. Если хочется большей точности, то вместо стабилитрона можно будет подобрать какой-нибудь ИОН (источник опорного напряжения) — специализированная микросхемка, выдающая строго калиброваное напряжение. Я на вскидку модель не назову, но в комментах кто-нибудь наверняка добавит пару замечаний на этот счет ;)

А особые извращенцы могут подать эталонное напряжение с R-2R цепи или иного ЦАП, тогда мы получим еще и программно расширяемый диапазон =)

Короче, не важно как мы задали опорное напряжение, гораздо интересней то, как его вычесть.
Для этого применим наш операционный усилитель. У него же не зря входы подписаны как плюс и минус. Фишка ОУ в том, что он вначале из напруги положительного входа вычитает отрицательное, а лишь потом все это дело умножает на коэффициент. Так что загоняем на отрицательный вход наше опорное, а на положительный подаем напряжение с датчика.
Осталось только утихомирить буйный коэффициент усиления с диких тысяч до скромных четырех. Нам ведь надо на четыре умножить разность? Вот!
Добавляем обратную связь, а именно вгоняем выход на отрицательный вход. А отношение резисторов дадут нам нужный коэффициент.

Готово! Можно подавать на вход АЦП!

Вариант второй — подать опорное и напряжение с датчика на дифференциальный вход АЦП. Многие контроллеры серии ATMega имеют такую возможность. Там происходит примерно то же самое — из одного вычитается второе и, опционально, умножается на фиксированый коэффициент (х20 и х200, вроде такие). Подробней — в даташите.

Токовый датчик.

Есть типы датчиков, у которых выходная величина, ток, скажем, от 0 до 20мА, в зависимости от измеряемого параметра. С ними поступают просто — загоняют их на токовый шунт, а чего церемониться? Дальше, по закону Ома, вычисляется напряжение и все, как было сказано выше.

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

p

Суть в чем. Через два плеча моста идет ток. Падение напряжения на резисторе зависит от сопротивления и тока. Два одинаковых чувствительных резистора ставят по диагоналям моста. Допустим, в нормальных условиях Rs=R. Считается просто:
I1 = U /(Rs + R)
I2 = U /(Rs + R)
UA = I1 × Rs
UB = I2 × R
UB − UA = 0 — мост сбалансирован.


Скажем, что-то случилось и два Rs уменьшили свое сопротивление, чуть-чуть. При этом изменился I1 и I2 — он стал чуточку выше.
Напряжение на точке А снизилось, так как UA больше зависит от Rs, чем от I1
А напряжене на точке B возросло, так как UB зависит от I2, а ток возрос.
Как результат UB − UA > 0 — мост разбалансирован и этот дисбаланс будет тем выше, чем сильней изменит свое сопротивление Rs. Да, оно может быть и одно, только в одном плече моста, но тогда перекос будет не столь заметным.

На выходе моста у нас дифференциальное напряжение, UA и UB примерно равны половине напряжения U, отличаясь лишь незначительно, в какие-то милливольты. Достоинство этой схемы еще в том, что она очень помехоустойчива. Если два провода с UA или UB идут вместе, то внешняя помеха наведет и в том и в другом одинаковое напряжение и будет там:
UA + Unoise и UB + Unoise
А поскольку нас интересует только разность, то:
Uout = (UB + Unoise) — (UB + Unoise)
Unoise автоматом сокращается и, опа, на выходе та же чистая разность, что была снята с моста.
В принципе, можно смело применить прием с разностью двух этих величин и последующим умножением на коэффициент, но лучше доверить дело профессионалу — инструментальному усилителю. Например AD627.

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

Повышение точности токовых шунтов.
Как было уже сказано выше, для превращения тока в напряжение используют токовые шунты. Проще говоря, резистор. Но если токи реально большие? Например, десятки ампер. В таком случае надо делать резистор очень малого сопротивления, в десятые доли Ома, а то и в сотые или тысячные. Чувствуете, где западло? В пайке! На таких мизерных величинах сопротивление паяного контакта уже становится соразмерным сопротивлению самого шунта, а это сильно влияет на точность замера, порой до 50% и более процентов. Как быть?
Проблема в том, что в точке пайки образуется паразитный резистор, поэтому эквивалентная схема выглядит так:

Но если применить резистор с четырьмя выводами, в котором не будет внутри паяных соединений (цельнолитой, например), то будет схема уже вот такой:

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

Раз и готово! Надо только пятак хитрый нарисовать, но это совершенно не проблема!

Конечно, это лишь общие основы аналоговых преобразований. Тут не описано множество грабель и схемотехнических решений, направленных на повышение точности, компенсации разных искажений. Но я и не ставил себе таких целей. Измерительная техника - это отдельная религия, которую можно изучать полжизни и так и не разобраться в ней от и до :)


ист-к: http://easyelectronics.ru/izmeritelnye-cepi.html