Точное измерение сопротивления
- Войдите на сайт для отправки комментариев
Есть аналоговый датчик температуры (неизвестный, заменить его нельзя).
Меняет сопротивления в диапазоне 100-150 ом.
Характеристика линейна. Примерна такая R=0.375801*t+102.016
То есть, 1 градус меняет сопротивление на 0.3 ома.
Мои подсчеты сказали, что если соорудить из него и 100 Ом резистора делитель напряжения, то получим соотношение:
1 градус - ~0.0037V
Что, как я понимаю, далеко за рамками возможностей дефолтного analogRead() на atmega328.
Что-бы вы делали в этой ситуации?
Мне видятся такие направления:
1. Делать какой-то усилитель (сам не смогу его сочинить)
2. Пытатся перейти на внутренее опроное (не хочется, другие аналоговые входы тоже используются), плюс сам он, как понимаю, может плавать 15%-20%
3. Внешние опорное - а как соорудить "точное внешнее"? (и опять-таки - другие аналоговые...)
4. Исползовать внешний АЦП. Что-то типа AD7706 (но трудно его в DIP-пе найти у нас, да и ног дефицитных много займет)
Что посоветуете? Может есть какие-то более типово-простые решения этой задачи?
ОУ
неинвертирующий усилитель.
Выглядит он следующим образом:
Коэффициент усиления определяется так:
Ну как то так, вроде все просто. Резистор 100 Ом не стоит ставить ибо токи... надо больше.
Спасибо
>Ну как то так, вроде все просто.
Если бы.... :) Теперь еще больше вопросов.
>Резистор 100 Ом не стоит ставить ибо токи... надо больше.
В качестве R? Больше токи нужны ОУ? Но ведь он усиливает напряжение, а не ток? Или я не верно понял?
К тому же... если R сделать близким к нулю, то возникает риск, что если датчик замкнет мы получим КЗ между VCC-GND
Да и... на делителе (на входе усилителя) будут еще меньше колебания напряжения.
Вообщем можно чуть подробнее про "Резистор 100 Ом не стоит ставить"?
Предоположим, пока, что R у нас 100. И состояние датчика 100 Ом. Тогда, на входе усилителя мы имем 2.5V
Нагрели датчик на 1 градус, получили его сопротивление 100.375801, значит на входе усилителя у нас 2.5047V
Больше чем на K=2, усилить мы не можем. Так как выше VCC усилитель не усилит и обрежет (кстати, я в этом прав? он же не может исилить выше VCC)
Что-бы позволить себе существенно большие K, нужно как-то вычесть константу из входного сигнала. Что-бы усиливать не 2.5047, а только 0.0047
Вместо функции усиления out(in,K)=K*in, нужно организовать функцию out(in,K,C)=K*in-C
Но что-то не могу сообразить как же эту константу подать усилителю, что-бы она вычлась.
Возможно частично отвечу сам себе
Измерительные цепи | Электроника для всех
Там вот такой вариант предлагается:
Если я правильно понял - это на инвертирующем.
Вообщем статью нашел. Вроде есть ответы на мои вопросы. Но пока не понял. Буду медетировать. Идея понятна, а вот с конкретикой... какой все-таки номинал R выбрать, какой именно OP2 (какой подойдет, какие популярны-дешевы-легкодостать), что использоваться в качестве ИОН (можно ли взять 3.3v выход дуины для этого?)
При низком сопртивлении R будет большой ток на самом терморезисторе, (5/200 = 25 мА), что скорее всего приведет к его нагреву и может выходу из строя, R должно быть несколько килоом, например 10 кОм.
В качестве ИОН используется ИОН. Эта все таже неинвертирующая схема, но опять таки она безсмысленная, так как при колебании напряжения питания датчика будет колебаться и выходное значение, так что можно поставить вместо ИОН обычный делитель.
ОУ наверное любой подойдет, кстати на самой дуине стоит ОУ LM358, можно прям к нему припаяться.
То есть теперь делитель R1-R3 служит источником опорного напряжения, это нужно чтобы "сдвинуть" напряжение относительно которого будет усиливаться сигнал.
При низком сопртивлении R будет большой ток на самом терморезисторе, (5/200 = 25 мА), что скорее всего приведет к его нагреву и может выходу из строя, R должно быть несколько килоом, например 10 кОм.
Теперь ясно. Просто думал, что 25mA это безопасный ток. К тому же его действительно может хватить на "нагреть и исказить показания". Правда датчик находится в жидкости, так что "может и пронесет", но.... 10кОм так десять :) (ох... тогда изменения напряжение будет еще меньше :)
Эта все таже неинвертирующая схема, но опять таки она безсмысленная, так как при колебании напряжения питания датчика будет колебаться и выходное значение, так что можно поставить вместо ИОН обычный делитель.
А что превратит ее в "осмысленную"? Добавление еще одного ИОН-а для питания датчика? Контроль напряжения питания?
То есть теперь делитель R1-R3 служит источником опорного напряжения, это нужно чтобы "сдвинуть" напряжение относительно которого будет усиливаться сигнал.
Спасибо, Максим.
Просто на easy у усилителя минус вверху нарисован, вот и не опознал что это так же схема что и у вас :)
Я правильно понимаю, что формула расчета коэфициента усиления, не изменяется из-за появления R3. По прежднему K=1+R2/R1? Остается такой же в сообщении #1? А при расчете делителя R1/R3 мы представляем тчто R2 остуствует?
Попытаюсь расшифровать что я тут нарисовал.
Например R = 10 кОм, тогда при напряжении питания 5 вольт получаем падение напряжения на терморезистор от 0,05 В (при 100 Ом) до 0,075 В (при 150 Ом). Рассмотрим схему без R3. Тут все ясно нужно 0,075 В усилить до 5 В, то есть коэффицент усиления должен быть ~66 (5/0,075). Тогда R1 будет 1 кОм, а R2 65 кОм. То есть при 100 Ом на терморезисторе получаем на выходе 3,3 В, а при 150 Ом на терморезисторе 4,95 В.
Теперь рассмотрим схему с R3. Делитель R1-R3 даст возможность сдвинуть 0, то есть "растянуть" только изменяемый диапазон терморезистора (от 0,05 до 0,075 = 0,025 В) на диапазон от 0 до 5 В. Для этого нужно на делителе создать падение напряжения 0,05 вольта. Например R1 = 1кОм, а R3 = 100 кОм. Тогда коэффициент усиления нужен 200 и номинал R2 нужен 199 кОм (думаю и 200 кОм пойдет, некритично). Теперь должно получиться так: что при 100 Ом на терморезисторе на выходе будет 0 В, а при 150 Ом на выходе 5 В.
В общем все это теория, сам не проверял, ОУ пользовался только один раз при подключении к аналоговому входу PIR-сенсора и вроде как удачно, там конечно все проще так как не нужно конкретное значение, а только колебание сигнала.
Если заработает, но значения будут скакать, то нужен ИОН, например этот, но подключать его надо и к терморезистору, и к "-" ОУ (как на вашей схеме), и к AREF дуины, да и сам ОУ можно тоже запитать от него же.
Или же попробовать снизить сопротивление R , что бы увеличить входной диапазон напряжения.
Здравствуйте форумчане в посте 8 даной ветки форума есть схема измерения температуры с использованием операционного усилителя. Не подскажете скетч для просмотра реальной температуры на мониторе IDE после загрузки скетча в ардуину, при изменении значения термосопротивления значения на мониторе изменяются от 0 до 1023, а хотелось бы увидеть реальное изменение температуры от 0 до 100 градусов цельсия. Выход 0-5в. Извените за такую просьбу, нужно проверить работу ТСП через ардуину а в програмировании я профан. Программу брал из обучалки вот она:
int thermistor =3;
void setup(){
Serial.begin(9600);
}
void loop(){
Serial.println(analogRead(thermistor));
delay(1000);
}
при изменении значения термосопротивления значения на мониторе изменяются от 0 до 1023, а хотелось бы увидеть реальное изменение температуры от 0 до 100 градусов цельсия. Выход 0-5в. Извените за такую просьбу, нужно проверить работу ТСП через ардуину
Если это настоящий ТСП - то у него есть специальная таблица, в которой указаны сопротивление и соответствующая ему температура. Остается только вывести соответствующие коэффициенты для пересчета (данных АЦП в сопротивление, сопротивления - в температуру) и добавить в скетч что-то вроде:
Serial.println( K1 * analogRead(thermistor));
Откалибровать по нескольким точкам в рабочем диапазоне.
Про PT100 - куча схем и готовых преобразователей-усилителей....
Плохо что в связи с низким сопротивленим нельзя подавать высокое напряжение- саморазогрев начнётся,
да и провод к датчику - короткий и толстый....
https://www.google.ru/search?q=pt100&newwindow=1&tbm=isch&tbo=u&source=univ&sa=X&ei=KVjcUtWcIqKC4gTm7ICQCQ&sqi=2&ved=0CCcQsAQ&biw=1288&bih=704#imgdii=_
..
Характеристика линейна. Примерна такая R=0.375801*t+102.016
То есть, 1 градус меняет сопротивление на 0.3 ома.
.....
4. Исползовать внешний АЦП. Что-то типа AD7706 (но трудно его в DIP-пе найти у нас, да и ног дефицитных много займет)
Что посоветуете? Может есть какие-то более типово-простые решения этой задачи?
Цифирий у вас слишком много. небось сам датчик такую точность не дает. Но если хочется, то используйте мост. Загляните в тему про тензодатчик, там есть ссылка на спец микросхему для моста.
leshak, а можно полюбопытствовать при каких температурах он 100 и 150 ом? А то бывают узкотемпературные датчики, они до 100 гр. почти не меняют сопротивление, а потом начинают резко увеличиваться, и на 200 градусах уже за мегаом. Мне такой попадался как-то в оргтехнике.. Может у вас такой-же?
Но если хочется, то используйте мост.
В приведенной Максимом схеме с ОУ и двумя делителями - как раз и есть мост. :)
Раз Максим- так MAXIM
http://kit-e.ru/articles/measure/2011_7_61.php