Как «поделить» АЦП правильно

Автор: admin от 24-02-2019, 19:20, посмотрело: 106

Введение



Довольно часто в устройствах применяются активные датчики (терморезисторы, тензорезисторы, фоторезисторы, времярезисторы, счастьерезисторы и прочее).



Чтобы измерять соответствующую величину, датчик включают в цепь делителя в одно из его плеч.

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



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

Кто-то связывает величину только с ограничением тока на нагрев термистора.



Где-то существуют прикидки и советы.



Но я не нашел конкретных указаний по типу: «Сделай так, потому что так-то и так-то».

Инженерный подход не дает мне спать спокойно. Место для прикидки в жизни есть, но порой встает вопрос: «А почему именно такое сопротивление?»



Интерес подогрел спор с коллегой. Что же, вызов принят.



Расчет



Сразу скажу, что расчет выполнялся в программе SMath Studio. Прикладываю исходник. Вы можете использовать его в своих расчетах.



Постановка задачи



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



Решение



Вариантов схем включения может быть две: либо изменяющееся сопротивление находится в лапах АЦП, либо наоборот.



Как «поделить» АЦП правильно



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

Но далее идет рассмотрение именно первого варианта.



Напряжение на входе АЦП зависит от сопротивления постоянного резистора и пределов изменения переменного:



$$display$$ Delta U(R_c, R_k, R_n, U) = U cdot left({{R_k}over{R_k+R_c}}-{{R_n}over{R_n+R_c}} right), $$display$$



где $inline$R_c$inline$ – сопротивление постоянного резистора;



$inline$R_k$inline$ – самое большое сопротивление изменяющегося резистора;



$inline$R_n$inline$ – самое маленькое сопротивление изменяющегося резистора;



$inline$U$inline$ – напряжение питания.



Если построить график зависимости этого напряжения от сопротивления постоянного резистора, то можно увидеть ярко выраженный пик, а это именно то, что нам нужно (график построен для случая питающего напряжения в 1 В при использовании NTC термистора в широком диапазоне температур).



Как «поделить» АЦП правильно



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



$$display$${{d}over{dR_c}} Delta U(R_c, R_k, R_n, U) = 0$$display$$



Расчет выполнен в SMathStudio. Можете скачать и пользоваться.



Навскидку



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



Как «поделить» АЦП правильно



Выделим и мы несколько правил для умничанья в дальнейшем. По графику такие прикидки делать легче. Как раз ниже он и представлен (но он лишь демонстрирует зависимость, описанную ранее).



Как «поделить» АЦП правильно



1 правило: Если изменение сопротивление незначительно, то постоянное сопротивление должно быть примерно равным среднему изменяющемуся. Но и изменение напряжения будет ничтожно. Используй лучше мостовую схему.



2 правило: Если сопротивление изменяется в разы, то постоянное сопротивление должно быть меньше максимально возможного у изменяемого.



3 правило: Чем больше изменяется сопротивление в изменяемом резисторе, тем меньше должно быть сопротивление постоянного относительно максимума изменяемого.



Например, при разнице между граничными заключениями сопротивления изменяемого резистора в 10 раз рекомендуемое сопротивление постоянного должно быть примерно в три раза меньше максимального, а в случае изменения в 50 раз постоянный резистор уже должен составлять 0,14 от максимального в диапазоне изменения переменного резистора.

Если кто-то выделил дополнительные правила или не согласен с имеющимся, делитесь, и мы сделаем наш мир более грамотным.



Шаблоны



Если совсем не охота вникать, но хочется поставить в свой arduino проект «осознанный» делитель, то можно воспользоваться готовым ответом.



Какой резистор ставить в паре с NTC термистором на 10 кОм с В = 3950.



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
































Диапазон изменения сопротивления, градусов цельсяПрименениеРекомендуемое сопротивление второго плеча, кОмПроцент использования динамического диапазона АЦП, %
0..+125Мониторинг температуры внутри устройств в помещении3,381
-50...+125Максималка для данного термистора1896
-20..+50Температура на улице2068


Если есть еще распространенные применения, то пишите, добавлю еще.



Вывод



Надеюсь, теперь вы сможете оценить правильность используемого вами делителя. Конечно, все советы по выбору значения этого резистора, которые я упоминал ранее, верны. Но здорово осознавать то, что ты сделал все оптимально.



Источник: Хабр / Интересные публикации

Категория: Game Development

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

Добавление комментария

Имя:*
E-Mail:
Комментарий:
Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
Введите два слова, показанных на изображении: *