Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Дешевое измерение сопротивления от 30ом до 300ком
Форум разработчиков электроники ELECTRONIX.ru > Аналоговая и цифровая техника, прикладная электроника > Метрология, датчики, измерительная техника
kiltum
Задача: необходимо неспешно измерить сопротивление, величина которого лежит в диапазоне от 30 до 300000 ом. Точность - 1% и ниже. Скорость - не важна абсолютно. Результат - в цифровом виде.

Предлагаемое решение, сверху вниз по предполагаемой схеме. Все управляется микроконтроллером "сбоку"

а) Управляемый источник напряжения. Цифровой резистор, два ОУ и полевик. На выходе можем получить 1-30В (примерно) с шагом около 0,1В (если взять резистор в 256 шагов). Через ОУ - на АЦП1 для контроля напряжения.

б) "Батарея" резисторов на сопротивление 30, 100, 1000 .... 200000, 300000 (сколько надо), соединенных параллельно. Каждый резистор "включается" в парралель с помощью полевого транзистора. Транзистор управляется микроконтроллером.

в) Само сопротивление, которое надо измерить.

Сбоку операционник в режиме повторителя напряжения/инвертирующего усилителя с изменяемой ОС (по необходимости) и АЦП2. подключен к получившемуся делителю напряжения из батареи резисторов и измеряемого.

Принцип измерения:

1. Ставим напряжение на 1в
2. "Подключаем" сопротивление на 30 ом путем открытия соответствующего полевика
3. Меряем напряжение с помощью АЦП2
4. Полученное 0 или около нуля? Переключаем на резистор номиналом повыше и/или напряжение повыше, пока не будет где-то "в середине".
5. Меряем, корректируем с учетом напряжения и включенного резистора.

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

Компенсация неточности сопротивлений и внутренних сопротивлений транзисторов - в самом начале вместо резистора ставим перемычку или известный резистор и последовательно переключаем напряжение с блока питания и резисторы. По показаниям АЦП1, меряем напряжение и заносим полученное для корректировки в память МК.

По прикидкам, родного 12битного АЦП микроконтроллера хватит, что бы обеспечить 1% и замахнуться на 0,1%

Минусы - надо много ног микроконтроллера (но это можно решить регистром сдвига) и использование "лишнего" АЦП для контроля напряжения/калибровки.



_pv
а просто сделать делитель из N резисторов подключенных прямо к порту, и измеряемого, подключенного к АЦП.
для 0.1% точности всё равно отдельно калибровать всё придётся.

и для какого-нибудь msp430f2013 за 2$, c сигма-дельта АЦП и PGA, N совсем небольшим будет.
там у АЦП дин. диапазона под 90дБ плюс PGA на 32.

Сергей Борщ
QUOTE (kiltum @ Mar 9 2017, 15:56) *
Точность - 1% и ниже.
То есть 8 бит - выше головы. Обычный делитель, измерять падение встроенным АЦП.
Tanya
Цитата(kiltum @ Mar 9 2017, 16:56) *
Задача: необходимо неспешно измерить сопротивление, величина которого лежит в диапазоне от 30 до 300000 ом. Точность - 1% и ниже. Скорость - не важна абсолютно. Результат - в цифровом виде.


Что значит ниже 1%? Точность (погрешность) относительно чего?
Plain
Определяющий погрешность прибора эталон сопротивления, именуемый в простонародье "известным резистором", обычно тупо соединяется последовательно с измеряемым сопротивлением, образуя трёхвыводную схему, на которую подаётся любое приемлемое напряжение, после чего, потому что ток в последовательной цепи всегда одинаковый, напряжения на этих двух сопротивлениях всегда будут относиться друг к другу в точности как их сопротивления.

Итого, требуется всего лишь измерить три напряжения в трёх точках данной схемы, для чего, при требуемых диапазонах, 12-ти разрядов явно недостаточно. Дёшево увеличить разрядность такого АЦП можно посредством каскадирования его со сравнивающим АЦП, т.е. подмешиванием к сигналу пилообразного смещения (с перекрытием МЗР, т.е. порядка 1,5 МЗР) и усреднением полученных результатов — например, если микроконтроллер создал соответствующую пилу, на протяжении которой сделал 64 измерения, к разрешению АЦП добавится: log2 64 = 6 разрядов.

Поскольку входное сопротивление всех встроенных в современные микроконтроллеры АЦП порядка 1 кОм, буферный повторитель на ОУ с высокоомными входами неизбежен и уже имеется в бюджете проекта — остаётся лишь добавить к нему на выход сопротивление 10 Ом и подать на него пилообразный ток 100 мкА, в результате чего получится смещение (10 Ом · 100 мкА) = 1 мВ или (4096 · 1 мВ / 3 В) = 1,365 МЗР.

Кроме того, данный буферный усилитель не сможет повторить сигналы, равные потенциалам шин питания, если он питается от них же, а значит, двум крайним выводам измерительного делителя требуется немного отступить от обеих шин питания, что проще всего сделать добавлением последовательно по диоду с каждой стороны. То же самое и в отношении входного диапазона АЦП — бессмысленно было бы пытаться им что-то измерить на краях его шкалы. Также, все RR-усилители имеют естественный дефект в виде скачка напряжения смещения при переходе входа на противоположную диффпару — к примеру, у ОУ MCP6002 это происходит при входном синфазном напряжении примерно VDD–1,2 В (Рис.2-5 паспорта), т.е. в 3-вольтовой схеме требуется либо запитать такую микросхему от 5 В, либо сделать отступ входного сигнала от верхней шины питания заведомо больше, т.е. добавить в измерительную последовательную входную цепь условно ещё один диод.

Источник пилообразного тока элементарно делается посредством ШИМ-ЦАП, т.е. фильтрации ШИМ-выхода микроконтроллера посредством ФНЧ на RC-цепочке, и типового преобразователя напряжение-ток, т.е. ОУ, транзистор и резистор, Поскольку минимальное напряжение, которое требуется измерять, ранее было ограничено отступом от потенциала общего провода на напряжение диода, т.е. порядка 500 мВ, то 3 В амплитуды с вывода ШИМ микроконтроллера требуется уменьшить дополнительным к резистору ФНЧ резистором до, к примеру, 100 мВ, т.е. в 30 раз, чтобы этот транзистор работал в линейном режиме, а резистор его датчика тока, соответственно, будет (100 мВ / 100 мкА) = 1 кОм.

Наконец, для коммутации трёх сигналов, а правильнее четырёх, т.е. настоящей четырёхпроводной схемы, поскольку измеряемое сопротивление обычно вынесено из подобных приборов 4-проводным кабелем произвольной длины, требуется аналоговый мультиплексор 4:1 с низкими токами утечки, т.е. ширпотреб 74HC4052 здесь не годится, а требуется что-то типа DG409LDY.

Итого, 14 руб. за сдвоенный ОУ MCP6002, 2 руб. за транзистор BSS138, 88 руб. за DG409LDY, по 1 руб. за BAS16, 8 руб. за эталон сопротивления RT0805BRD 3 кОм 0,1% 25 ppm — порядка 120 руб., в сумме с прочей мелочью и без учёта элементов защиты, или втрое дешевле, чем один 24-разрядный АЦП AD7799, тоже решивший бы эту задачу.
kiltum
Цитата(_pv @ Mar 9 2017, 18:13) *
а просто сделать делитель из N резисторов подключенных прямо к порту, и измеряемого, подключенного к АЦП.

Я на макетке пробовал - у потртов МК слишком большой разброс по току-напряжению. Без внешнего "референса" не придумал как обойтись.

Цитата(Tanya @ Mar 9 2017, 19:45) *
Что значит ниже 1%? Точность (погрешность) относительно чего?

Значит, результат не должен отличаться больше 1% от измеренного хорошим мультиметром. Если тот показал, что сопротивление 1000 ом, то схема должна выдать на том же резисторе результат от 992 до 1009 ом.

Цитата(Plain @ Mar 10 2017, 04:58) *
Итого, требуется всего лишь измерить три напряжения в трёх точках данной схемы, для чего, при требуемых диапазонах, 12-ти разрядов явно недостаточно. Дёшево увеличить разрядность такого АЦП можно посредством каскадирования его со сравнивающим АЦП, т.е. подмешиванием к сигналу пилообразного смещения (с перекрытием МЗР, т.е. порядка 1,5 МЗР) и усреднением полученных результатов — например, если микроконтроллер создал соответствующую пилу, на протяжении которой сделал 64 измерения, к разрешению АЦП добавится: log2 64 = 6 разрядов.


Именно поэтому я и не хочу делать вжимать весь измеряемый диапазон в диапазон АЦП. Так-то да, было бы проще взять 24бита и не мучаться от слова совсем. Но за идею использовать аналоговый переключатель спасибо - я чего-то про них даже не подумал.
MrYuran
Цитата(Сергей Борщ @ Mar 9 2017, 19:37) *
То есть 8 бит - выше головы. Обычный делитель, измерять падение встроенным АЦП.

В диапазоне 1:10000?
ну-ну sm.gif
Как минимум 3-4 диапазона усиления надо делать, не считая PGA ADC

так что схема типовая - опер с токовым входом, а в ОС - переключаемый опорный резистор.
Можно, конечно, инструментальный поставить, но точно не дешевле выйдет. Компактнее разве что.
rx3apf
А вот в известном и очень популярном "транзистортестере" диапазон для резисторов 20 Ohm...20 MOhm с претензией на 1% и лучше. При примитивной просто до смешного схеме измерения...
adnega
Я делал измерение термосопротивления на МК. Там динамический диапазон тоже очень большой.
Никаких АЦП не хватит. Причем, устройство с батареечным питанием и очень малым объемом.
Делал на принципе заряда-разряда RC цепочки эталонными резисторами и измеряемым.
При этом делалась поправка на напряжение питания и термоуход конденсатора.
Использовал таймер и компаратор, встроенные в МК. Точность 0.1C в диапазоне 0-100С
Больше просто дисплей не позволяет. Причем в районе 100C точность должна быть максимальной, т.к.
измерение требовались "самогонщикам", а там очень трепетно нужно следить за графиком T.
Plain
Цитата(kiltum @ Mar 10 2017, 09:29) *
Но за идею

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

Цитата
и не мучаться от слова совсем

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

Мучение от каждой лишней пайки вовсе не редкость — моё начальство, к примеру, тоже сильно страдает этой древней болезнью. Итого, если сравнивать по ногам, то у AD7799 и DG409LDY их одинаково, диодов в схемах тоже. Следовательно, на 240 рублей разницы между 120-ю и 360-ю рублями остаются пайки лишних 8-ми ног MCP6002, 3-х ног BSS138, 2-х ног одного конденсатора ФНЧ и 8-ми ног 4-х резисторов — всего 21 нога, или мучений на (240 / 21) = 11 рублей за каждую пайку.
Tanya
Цитата(Plain @ Mar 10 2017, 15:38) *
11 рублей за каждую пайку.


Вот Вы очень ловко рубли считаете... А можете мне объяснить, как измерить один процент от опорного напряжения с точностью один процент микроконтроллерным АЦП, подмешивая пилу. Это же, как мне кажется, получается сотая процента.
Plain
Да, для такого случая нужно накинуть пилой как минимум 3 разряда, чтобы стало 15 разрядов. А ещё неплохо бы откалибровать ШИМ'ом нелинейности встроенного АЦП.
Владимир
Цитата
сделал 64 измерения, к разрешению АЦП добавится: log2 64 = 6 разрядов.

Это теоретическое
Цитата
как минимум 3 разряда
это практическое.
Tanya
Цитата(Plain @ Mar 10 2017, 17:02) *
Да, для такого случая нужно накинуть пилой как минимум 3 разряда, чтобы стало 15 разрядов. А ещё неплохо бы откалибровать ШИМ'ом нелинейности встроенного АЦП.

Вот не верю. Я бы подумала в сторону (если деньги считать...) самодельного АЦП на базе интегратора тока (трансимпедансного усилителя с конденсатором в обратной связи)... Можно подавать туда дозированные импульсы тока, поддерживая постоянный уровень. Дрейф емкости тут не важен. Только придется придумать небольшую схемку для учета сопротивления подводящих проводов к измеряемому резистору. Ведь процент от 30 ом - 0.3 ома. Если провода длинные, а температура меняется, то этого не избежать. Кажется забавным, но тут можно манганиновым проводом соединить.
Plain
Цитата(Владимир @ Mar 10 2017, 17:09) *
Это теоретическое ... это практическое

Когда-то давным-давно пришлось таким способом добавлять 5 разрядов к 10-ти. Правда, были ещё всякие нелинейные фильтры, калибровка и прочее, но оно работало.

Цитата(Tanya @ Mar 10 2017, 17:19) *
в сторону (если деньги считать...) самодельного АЦП на базе интегратора тока

Как-то Вы чересчур усложнили, потому что ровно на той же самой вышепредложенной паре ОУ, на том же измерительном делителе и том же аналоговом мультиплексоре 4:1 элементарно делается сравнивающий АЦП, т.е. сбрасываемый парой ног микроконтроллера интегратор, делающий опорную пилу, и подключённый к защёлке таймера микроконтроллера компаратор на втором ОУ, сравнивающий эту пилу поочерёдно с каждым из четырёх измеряемых напряжений, т.е. переключением входов мультиплексора микроконтроллером по прерываниям от защёлки. Нелинейности определяются только зависимостью смещений компаратора и ОУ от их синфазных напряжений, можно откалибровать.

Но конечно, компаратор лучше поставить честный отдельный, например MCP6541. Странно, что сумма одиночного ОУ и компаратора получается тоже 14 руб., чудо маркетинга.
@Ark
Цитата(Plain @ Mar 10 2017, 04:58) *
Поскольку входное сопротивление всех встроенных в современные микроконтроллеры АЦП порядка 1 кОм, буферный повторитель на ОУ с высокоомными входами неизбежен...

Это не верно.
1кОм - это порядок номинала сопротивления, которое включено последовательно на входе АЦП, и ограничивает ток заряда внутреннего буферного конденсатора АЦП (порядка 100 пикофарад). Ток утечки по аналоговым входам АЦП - порядка 1 мкА и менее. То есть, можно говорить о входном сопротивлении порядка нескольких гигаом. Поэтому, входной повторитель на ОУ не только НЕ неизбежен, но и, в большинстве случае, просто не нужен.
Tanya
Цитата(Plain @ Mar 10 2017, 18:04) *
Как-то Вы чересчур усложнили, потому что ровно на той же самой вышепредложенной паре ОУ, на том же измерительном делителе и том же аналоговом мультиплексоре 4:1 элементарно делается сравнивающий АЦП, т.е. сбрасываемый парой ног микроконтроллера интегратор, делающий опорную пилу,

А Вы чересчур упрощаете... Не поверю в качественную пилу из таких материалов никогда. Сотая процента не получится...
Двойное интегрирование или баланс заряда намного стабильнее. Так еще деды делали...
_pv
Цитата(Plain @ Mar 10 2017, 22:04) *
Когда-то давным-давно пришлось таким способом добавлять 5 разрядов к 10-ти. Правда, были ещё всякие нелинейные фильтры, калибровка и прочее, но оно работало.

если изначально у 10ти разрядного АЦП была дифф нелинейность около 1LSB, то никаким оверсэмплингом в 32 раза её не уменьшить особенно с подмешанной пилой на 1.5LSB, соответственно добавленные пять разрядов даже монолитными не будут, что толку от них тогда.
Plain
Цитата(Tanya @ Mar 10 2017, 19:16) *
Не поверю в качественную пилу из таких материалов

Керамический C0G 0,1 мкФ 50 В, на взбрыки диэлектрика на пиле есть пустые участки, и можно не сбрасывать интегратор, а делать треугольник, меняя знак, т.е. требуется всего одна нога микроконтроллера, но разная адресация данных. Ведь локальная стабильность нужна только на цикл измерений, а в следующем цикле пила может быть произвольно другой. Или Вы о чём-то другом?
rx3apf
Цитата(@Ark @ Mar 10 2017, 18:35) *
порядка 1 мкА и менее. То есть, можно говорить о входном сопротивлении порядка нескольких гигаом.

1 uA - это мегаомы, а не гигаомы. Впрочем, например, для AVR в даташите приводится и типичное значение сопротивление по DC - 100 MOhm. Однако, исходя из наличия конденсатора s/h и токоограничительного резистора, требования к импедансу источника жестче, до 10 kOhm. Если там (на входе) относительно большая емкость снаружи - проблем нет, но для одиночного измерения. А вот если непрерывное преобразование - опять же нужно уменьшать по DC.


Цитата(_pv @ Mar 10 2017, 21:08) *
соответственно добавленные пять разрядов даже монолитными не будут, что толку от них тогда.

Как ни странно, но по факту - работает, как будто этой нелинейности и нет вовсе. А вот наличие смещения шкалы сразу становится очень видно.
@Ark
Цитата(rx3apf @ Mar 10 2017, 22:11) *
1 uA - это мегаомы, а не гигаомы. Впрочем, например, для AVR в даташите приводится и типичное значение сопротивление по DC - 100 MOhm. Однако, исходя из наличия конденсатора s/h и токоограничительного резистора, требования к импедансу источника жестче, до 10 kOhm. Если там (на входе) относительно большая емкость снаружи - проблем нет, но для одиночного измерения. А вот если непрерывное преобразование - опять же нужно уменьшать по DC.

Да, согласен. Немного ошибся с оценками... Посмотрел в ДШ простейшего PIC12: ток утечки - не более 500 наноампер. То есть порядка 2 МОм вх. сопротивления, как минимум. Но, все таки - не 1К. sm.gif
Plain
Цитата(_pv @ Mar 10 2017, 21:08) *
никаким оверсэмплингом

Большую диффнелинейность можно устранить большей девиацией и фильтрацией. Интегральную нелинейность можно откалибровать ШИМ'ом.
a123-flex
Цитата(kiltum @ Mar 9 2017, 17:56) *
Задача: необходимо неспешно измерить сопротивление, величина которого лежит в диапазоне от 30 до 300000 ом. Точность - 1% и ниже. Скорость - не важна абсолютно. Результат - в цифровом виде.


Возьмите e7-22, у него есть внешний цифровой интерфейс. Ничего дешевле и лучше сделать невозможно. Если готовый прибор взять нельзя, возьмите его схему - она есть в интернете, и отрежьте от нее ненужное.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.