Измерение температуры датчиком wzp Pt100

ppbinag
Offline
Зарегистрирован: 12.01.2015

Добрый день! Вопрос собственно как посчитать температуры с датчика? Приобрел данные датчмики чтобы мерять температуру до 300 градусов.

https://yadi.sk/i/J9pAO8i1nbDMt

Подключил по схеме делителя но напряжение через lm358 с AREF (1.1В), схема ниже.

https://yadi.sk/i/2hAZKxQ3nbDTn

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Вот здесь в конце есть формулы и таблицы - https://en.wikipedia.org/wiki/Resistance_thermometer

А вот здесь есть полная таблица сопротивлений для PT100 - http://www.micropik.com/PDF/pt100.pdf

dim
Offline
Зарегистрирован: 09.01.2012

а 5 вольт не подходит разве? заказал пт100, пока не пришли. хочу разобраться.

dmitron1036
Offline
Зарегистрирован: 10.01.2016

надо уточнить: LM358 может вам головной боли добавить.

AD8606 больше подходит.

Хотя, в вашей схеме ОУ вообще лишний.

ppbinag
Offline
Зарегистрирован: 12.01.2015

Добрый день! Пробывал считать по формуле сопротивления датчика, но оно выходит не точное: 

Vout = (1.153 / 1023.0) * analogRead(analogPin); //1.153 напряжение с lm358
R2 = 1000 / ((1.153.0 / Vout) - 1); // Вычисляем сопротивление R2 - термистор (1000 это значение R1 1 кОм)

Но получается например 102,3 Ом, хотя для температуры в помещении должно быть примерно 109 Ом.  Нашел причину Vout выводится до сотых, а если во вторую формулу подставить вручную значение до тысячных то сопротивление получается правильное. Как увеичить количество знаков после запятой? Тип переменных поставил Float.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

ppbinag пишет:

R2 = 1000 / ((1.153.0 / Vout) - 1); // Вычисляем сопротивление R2 - термистор (1000 это значение R1 1 кОм)

Это что?

ppbinag пишет:

Нашел причину Vout выводится до сотых, а если во вторую формулу подставить вручную значение до тысячных то сопротивление получается правильное. Как увеичить количество знаков после запятой? Тип переменных поставил Float.

Куда выводится? Чем? В приведённом куске никакого вывода никуда не вижу.

ppbinag
Offline
Зарегистрирован: 12.01.2015

Прошу прошения. Ошибся это напряжение 1.153 В. Я через монитор порта смотрю посчитанное значение Vout оно представлеено числом округленным до сотых, например 0,85. Если посчитать просто на калькуляторе, и подставить число округленное до тысячных, например 0,853, то температура боле приближенная к реальной. Более точные значния для примера чуть позже приведу.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

ppbinag пишет:

Я через монитор порта смотрю посчитанное значение Vout оно представлеено числом округленным до сотых, например 0,85. Если посчитать просто на калькуляторе, и подставить число округленное до тысячных, например 0,853, то температура боле приближенная к реальной. Более точные значния для примера чуть позже приведу.

Т.е. Вы хотите знать, как вывести в сериал число с большим, чем два количесвом знаков после запятой? Так?

Ну, это, RTFM! Вот здесь всё написано и примеры есть (три последних перед заголовком "Синтаксис" примера как раз про это)..

Baks
Baks аватар
Offline
Зарегистрирован: 11.01.2016

Все детали в сборе как я понимаю? схемку собрали как на ссылке в первом посте? замеры на больших темпиратурах проводили уже?

ppbinag
Offline
Зарегистрирован: 12.01.2015

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

Baks
Baks аватар
Offline
Зарегистрирован: 11.01.2016

Меня тоже интересует ваша работа, даже похожую тему создал  http://arduino.ru/forum/obshchii/kts-b-i-arduino-mega только дотчик немного другой, но как понимаю примерно одинаковые.. расскажите поподробне про вашу схему , немного не понимаю по контактам что куда и как все работаеть должно(принцып). 

Штирлиц
Штирлиц аватар
Offline
Зарегистрирован: 13.06.2015

Посмотрите в этой теме.

Штирлиц
Штирлиц аватар
Offline
Зарегистрирован: 13.06.2015

Вот простая рабочая схема на LM324 (LMC660CN)

Baks
Baks аватар
Offline
Зарегистрирован: 11.01.2016

спасибо за схемку, немного вопросов с вашего позволения...

1.R18 номинал 100 чего?

2.R1 и R2  два резистора по 47 k последовательно для чего?

3. R21 подстроечный резистор на 680 килоом? не ошибка?

4. над усилителем надпись U 1.3 это что?

5. в центре схемы какаято коробочка не понятная U1(ни куда не подсоединяется)

6. в ардуино подключаем по + а минус на GDN?

упс, чето многовато вышло :)

Штирлиц
Штирлиц аватар
Offline
Зарегистрирован: 13.06.2015

1. 100 om (Если используем PT100)

2.остатки от старой схемы- можете убрать

3. 680кОм

4.В составе LM324 и подобных имеется 4 -ре усилителя . Это - один из 4-х. В данном случае 3-ий.

5.Выводы питания микросхемы из программы DIPTRACE

6. Питание берем от ардуино и сигнал  подаем на аналоговый вход

Baks
Baks аватар
Offline
Зарегистрирован: 11.01.2016

поскольку у меня не PT100 и сопротивления разные то можно установить R18 подстроечный резистор на 1 килоом для колибровки под мой датчик темпиратуры?

в место R1 и R2можно поставить 100 килоом ли близкий и подстроечником R21подогнать под себя делитель?

в сторону ардуинки to A0 input подходят 2 провода, один + второй - минус на GDN?  и стабилитрон ставлю между ними?

и да чтото все пишут про погрешность холодной спайки, это тут страшно?

 

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Штирлиц пишет:

Вот простая рабочая схема на LM324 (LMC660CN)

Мостовая схема- самое то!

ppbinag
Offline
Зарегистрирован: 12.01.2015

Не вижу большой разницы в моей схеме и в вашей, lm358 и lm324 отличие в количестве операционных усилителей (2 и 4). Правильно ли я считаю сопротивление в ардуине или другой способ есть?

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Что там считать.

Мост, наверху два одинаковых ( 1 кОм у вас), внизу два одинаковых (100 Ом у вас)- мост сбалансирован,
напряжение на диагонали моста равно нулю.

Все что справа- дифференциальный усилитель сигнала с моста.
 

Штирлиц
Штирлиц аватар
Offline
Зарегистрирован: 13.06.2015

ppbinag пишет:

Не вижу большой разницы в моей схеме и в вашей, lm358 и lm324 отличие в количестве операционных усилителей (2 и 4). Правильно ли я считаю сопротивление в ардуине или другой способ есть?

А разница значительная. Ну не в этом суть.

Я подключал испытуемый PT100 к схеме и измерял значения на выходе ОУ пр температуре 0 С и при температуре 220 С . При 0С в сериале показывало 180, а при 220С  -1023.

Использовал функцию map .

outputValueA = map(sensorValueA, 180, 1023, 0, 2200);

Потом сверял показания Ардуино с заведомо точным термометром. В нужном мне диапазоне линейность в пределах +- 0.1 С . В начале и в конце погрешность повыше .Это если по простому . А так я еще делал усреднение измеряемых значений и т.д. Но об этом почитайте в постах Dimaxa.

Baks
Baks аватар
Offline
Зарегистрирован: 11.01.2016

Штирлиц ответьте пожалуйсто по посту #15

Штирлиц
Штирлиц аватар
Offline
Зарегистрирован: 13.06.2015

Резистор R18 должен соответсвовать сопротивлению вашего термодатчика при минимальной температуре, можете поставить и подстроечник.

R1 и R2 уберите вообще.

3. Стабилитрон можно в данном случае не ставить так как напряжение выхода не  может быть выше напряжения питания( 5В)

4. Погрешностью холодной пайки не интересовался , а потому сказать ничего не могу.

ppbinag
Offline
Зарегистрирован: 12.01.2015

На сколько я понял и на этой схеме снимаете с lm324 вы снимаете напряжение и просто конвертируете диапазон. Но у меня не чем измерить температуру 380 градусов, может подскажите сопротивление датчика на этой температуре? А сопротивление Вы не считали? просто если знать то можно точно будет посчитать температуру, по формуле из даташита.

Штирлиц
Штирлиц аватар
Offline
Зарегистрирован: 13.06.2015

Вот вам таблица . Смотрите и считайте.При 380 С сопротивление PT100 = 240.18 Ом. Вам про эту таблицу ЕвгенийП в самом начале писал.

ppbinag
Offline
Зарегистрирован: 12.01.2015

Я имел ввиду вычисление сопротивления с помощью ардуино на основе получаемого напряжения с аналового вхда? Спасибо, а то у меня таблица всего до 100 градусов была.

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011
uragan
Offline
Зарегистрирован: 23.02.2015

Замеряю рт 100 температуры дымогазов до 300 гр. Питание от 5 вольт дуины через делитель, опорное 1,1. Тарировка по двум точкам: лед и кипяток. Иногда значения плавают, грешу на питание и на помехи от рядом проходящих проводов 220 вольт.

ppbinag
Offline
Зарегистрирован: 12.01.2015

uragan пишет:

Замеряю рт 100 температуры дымогазов до 300 гр. Питание от 5 вольт дуины через делитель, опорное 1,1. Тарировка по двум точкам: лед и кипяток. Иногда значения плавают, грешу на питание и на помехи от рядом проходящих проводов 220 вольт.

Кодом не поделитесь?

uragan
Offline
Зарегистрирован: 23.02.2015

Так один оператор : analogRead.  А да, еще мар для линейной зависимости.

Baks
Baks аватар
Offline
Зарегистрирован: 11.01.2016

uragan пишет:

Питание от 5 вольт дуины через делитель, опорное 1,1

что значит опорное ? схемку свою не скинете?

Штирлиц
Штирлиц аватар
Offline
Зарегистрирован: 13.06.2015

Baks пишет:

что значит опорное ? схемку свою не скинете?

Начните отсюда  и потом почитайте здесь.

Baks
Baks аватар
Offline
Зарегистрирован: 11.01.2016

Штирлиц спасибо за ссылочки все прочитал, вопрос про опорное больше задавать не буду _)

Вы собирали схемку которую выше выложили? где использовали если не секрет? и как она по стабильности и на минимальных и максимальных темпиратурах работает(погрешность большая?)?. Заранее благодарен за ответ!

dmitron1036
Offline
Зарегистрирован: 10.01.2016

может генератор тока на LM234 направить на термистор?

тогда напряжение в сопротивление проще переводить.

ppbinag
Offline
Зарегистрирован: 12.01.2015

А к этой схеме код ардуины можно увидеть (пост #16)? Или использовали функцию map?

Штирлиц
Штирлиц аватар
Offline
Зарегистрирован: 13.06.2015

Я так понимаю - погнали по второму кругу.

На все эти вопросы найдете ответы  в топиках сверху при внимательном их прочтении.( И про точность , и про то как использовать в скетче , и про все остальное...)

ppbinag
Offline
Зарегистрирован: 12.01.2015

Спасибо. Попробую Вашу схему.

Duino A.R.
Offline
Зарегистрирован: 25.05.2015

Baks пишет:
чтото все пишут про погрешность холодной спайки, это тут страшно?

 


Тут это не страшно, так как здесь этого вовсе нет. Холодный спай нужно компенсировать при использовании термопар. Там это обязательно, так как физика измерения другая. В Вашем случае используется термометр сопротивления, там холодного спая нет. Там надо следить за сопротивлением проводов, идущих к датчику. Вы используете 2-х проводную схему подключения, провода нужны "толстые и короткие". Если провода длинные (десятки метров) то уже нужна 3-х, а лучше 4-х проводная схема подключения с компенсацией влияния сопротивления проводов, но электроника там сложнее. Это варианты для промышленного применения.

ppbinag
Offline
Зарегистрирован: 12.01.2015

Добрый день! Получилось работать с датчиками WZP Pt100 заказанными с китая. Собрал схему по примеру подсказанному "Штирлицом", только пришлось подбирать номиналы резисторов моста и для каждого определять значения сопротивления 0С и 350С. Так как у 5 датчиков заказанным сопротивление при 0С оказалось от 100Ом до 102,9Ом. Считывание температуры производил при помощи функции map. https://yadi.sk/i/KxJFk_EMoGBiG

neoblack2
Offline
Зарегистрирован: 15.04.2017

Штирлиц пишет:

Я подключал испытуемый PT100 к схеме и измерял значения на выходе ОУ пр температуре 0 С и при температуре 220 С . При 0С в сериале показывало 180, а при 220С  -1023.

Использовал функцию map .

outputValueA = map(sensorValueA, 180, 1023, 0, 2200);

Потом сверял показания Ардуино с заведомо точным термометром. В нужном мне диапазоне линейность в пределах +- 0.1 С . В начале и в конце погрешность повыше .Это если по простому . А так я еще делал усреднение измеряемых значений и т.д. Но об этом почитайте в постах Dimaxa.

Скажите а как вообще такое у вас такая точность вышла? )))  0 градусов - 180, 220 градусов - 1023. Тоесть 1023 - 180 = 843 разных значений температур в диапазоне от 0 до 220. 220 поделить на 843 - 0.26 градуса точность.

Тоесть 0 градусов = 180. а 181 это 0.26 градуса. Какая макаром померялось 0.1 ??

И вопрос. Вот подсоединяете эту схему к налоговому уходу. И например пусть 0. И что у вас 180 точно идеально? Да оно у вас скорее всего плавает 180 -185 - 182 - 176 и т.д. Тоесть не ноль, а - 1 или -2 или 0 или 1 или 2. Понятно можна програмно кое-как сглаживает, но все равно Какая может быть точность 0.1 ????

rkit
Offline
Зарегистрирован: 23.11.2016

neoblack2 пишет:

Скажите а как вообще такое у вас такая точность вышла? )))  0 градусов - 180, 220 градусов - 1023. Тоесть 1023 - 180 = 843 разных значений температур в диапазоне от 0 до 220. 220 поделить на 843 - 0.26 градуса точность.

Ты путаешь точность и разрешение.

neoblack2
Offline
Зарегистрирован: 15.04.2017

rkit пишет:

neoblack2 пишет:

Скажите а как вообще такое у вас такая точность вышла? )))  0 градусов - 180, 220 градусов - 1023. Тоесть 1023 - 180 = 843 разных значений температур в диапазоне от 0 до 220. 220 поделить на 843 - 0.26 градуса точность.

Ты путаешь точность и разрешение.

Ну так без разницы. Измеренные значения 0 - 0.26 - 0.52 градуса.Как можна сказать по таким полученным значениям их сравнивать с 0.1. Вот человек меряет лабораторником и сейчас 0.1. А на ардуино прием вот тех 0 0.26 0.52. тут ни точности (так как плавают аналоговые измерения точно) ни разрешения.

Я просто к тому что вот схема выше на lm324 жесть полная. Собрал ту схему, так у нее на выходе плывучка при нормальном блоке питания, при запаянных проводах датчика +-10 аналоговых измерений. Тоесть там где 180, там плавает от 175-до 185. Плывучка в показаниях до 3 градусов. Фигня полная. Даже сильно усредняя я макс к 1 градусу приближаюсь - тоесть например 24 - то 24.1 - 24.6 - 24.0 - 24.8 - 23.9 ну грубо такая плывучка постоянно.

А вот те достичь 0.1 градуса то это прецензионные вычисления на 4 проводной pt100 на max31865

Кто что скажет насчет таких схем? как бы дешевле чем max31865

neoblack2
Offline
Зарегистрирован: 15.04.2017

Да, проверил на HX711, только двухпроводный датчик. результаты измерений