2
\$\begingroup\$

I am using an ADS1115 as an analog to digital converter to measure temperature. I am using an RTD100 temperature sensor to measure a temperature range of -40 to 150 degree celsius but the resistance vs. temperature table of the temperature sensor is non linear.

How can I convert the temperature range of -40 to 150 degree celsius to a proportional voltage of 0-5V so that I can measure it with an ADS1115?

Temperature vs. resistance table of RTD100:

enter image description here

enter image description here

This is a reference circuit to which an RTD100 is connected. It converts the temperature range of 0-200 degrees celsius to 0-5V but I want to design a circuit that converts (-40)-150 degree celsius to 0-5V.

How should I calculate the resistance values connected to the opamp?

\$\endgroup\$
9
  • \$\begingroup\$ Use R-divider. R1 - is RTD100 connected to grownd and measured point. R2 - const resistor, connect to Vdd and measured point. R = R1 + R2. I=Vdd / (R1+R2). U=I*R. Umeasured= R1 * Vdd / (R1+R2) \$\endgroup\$
    – nick_n_a
    Sep 14, 2020 at 10:15
  • \$\begingroup\$ If the power supply 5v, Umeasured-max can be not highter then 2,5 (cause Divider use). 5 volts at the output is possible if there is an additional power supply with a voltage of 10V or highter. \$\endgroup\$
    – nick_n_a
    Sep 14, 2020 at 10:24
  • \$\begingroup\$ but how can i get linear relationship with resistance and voltage?@nick_n_a \$\endgroup\$ Sep 14, 2020 at 13:04
  • \$\begingroup\$ When R2 greater then R1 many times - the value R1+R2 - is roughly equal R2. And U= R1*Vdd/R2(roughly) \$\endgroup\$
    – nick_n_a
    Sep 14, 2020 at 13:34
  • \$\begingroup\$ @nick_n_a i am actually not clear with the circuit diagram \$\endgroup\$ Sep 14, 2020 at 15:00

2 Answers 2

2
\$\begingroup\$

You have to apply higher-order polynomial regression (second-order is enough) for establishing the relationship. There is a built-in function in Matlab and GNU Octave for establishing the relationship. Besides, you may apply gradient descent to find the relationship (which is really tough).

I always use Octave for algorithm development. It's free and just 300 MB. Matlab is bulky and costly. All you have to do is to copy and paste the chart in a txt file.

https://github.com/SadatRafi/Thermistor-Curve-Fitting-Octave I've uploaded my octave code and details in GitHub. I hope it might be helpful.

enter image description here

\$\endgroup\$
0
\$\begingroup\$

You can roughly linearize the signal in an analog fashion by using a slightly non-constant current through the sensor that is partly proportional to the output voltage (a taste of positive feedback). You can easily linearize the signal so that it is (theoretically) perfect for any 3 points of your choosing, for example, 0%, 50% and 100% of your range.

However it's currently 2020 last I looked, and most instrumentation designers would read in the signal proportional to the resistance and use a simple algorithm such as evaluation of the Callendar-Van-Dusen equation to digitally convert the resistance reading to temperature.

\$\endgroup\$
2
  • \$\begingroup\$ do you have any references regarding the digitally convertion of resistance reading to temperature@Spehro Pefhany \$\endgroup\$ Sep 14, 2020 at 14:59
  • \$\begingroup\$ Google "Callendar-Van-Dusen equation". \$\endgroup\$ Sep 14, 2020 at 15:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.