Sensing Temperature - How to "amplify" the voltage range?

winterhunter

New Member
Hi everyone,

I need to be able to sense the room temperature quite accurately (+/- 0,1°C for a temperature range between 15 and 25°C - I should be nevertheless able to measure from -10°C to +45°C) using a KTY 10-62 silicon temperature sensor.

The measurement current should be around 1 mA, and I will use a 10-bit A/D converter (PIC 16F877A).

For a ~1mA current, the voltage drop at 15 °C will be 1mA x 1846 Ohm=1,846V and 2 V at 25°C. This leaves us a deltaV of 164mV.

If the 0-5V is represented by 10 bit, I get around 5mV per division, which in turn leads to ~33 divisions between 15 and 25°C --> the precision is then +/- 0,3 °C

How can I improve things to "expand" the full range (-10°C-->1496Ohm to +45°C-->2331 Ohm) to the 0-5V acquisition range of the ADC?

Thanks a lot!
 
Just use an LM92

The KTY 10-62 is only accurate to +/- 0.5 degrees so you would need to calibrate for better accuracy.

https://www.electro-tech-online.com/custompdfs/2008/03/LM92.pdf

is good to +/- 0.50 degrees over the range that you want. The output is digital, so no messing about with anything analog. The resolution is 1/16th deg C, and you can add a calibration offset in code if you want to.
 

I've done quite a bit of A/D with temperature sensors. You do realize that the temperature sensor you picked is parabolic, i.e. non-linear? You will have to use a regression algorithm or linear interpolation with a lookup table for an accurate temperature.

https://www.electro-tech-online.com/custompdfs/2008/03/kty10.pdf

Secondly, the PIC's A/D is very noisy for slow changing signals like temperatures. You will have to do some Gaussian filtering and multisample averaging to get anything good out of it. I would recommend an external integrating A/D to boot.

I would seriously consider a different sensor, and different A/D scheme here for the range you want. Gaining up your signal will only add to the noise, so some analog filtering would also be a good bet. Hope that helped.
 
Analog said:
Secondly, the PIC's A/D is very noisy for slow changing signals like temperatures. You will have to do some Gaussian filtering and multisample averaging to get anything good out of it. I would recommend an external integrating A/D to boot.

Would you care to give more detail on this? Averaging isn't good enough? It is slow changing after all.
 
Nigel Goodwin said:
I've no idea what he's on about?, it doesn't make any sense?.

Actually it does. The PIC's A/D is much more noisy than a high quality dual slope integrating A/D. Especially from a sensor that may have long leads. We've used sigma delta, integrating, flash and SAR type a/d's for various things. The PIC's A/D is optimized for integrating on a piece of silicon, which is just fine for many applications, but slowly changing signals such as temperatures, especially in the precision he wants requires a better solution. Double buffering the external A/D may also be an option to keep digital noise out as well. We go so far as separate analog / digital grounds and separate ground planes. It is hard enough to explain if you've never done precision temperature work. HTH
 
Any A2D is +/- one bit, a PIC 10 bit A2D happily outputs this accuracy if fed from a constant voltage, and a slowly changing one is no problem. As suggested, by averaging the readings you can effectively filter the results.

I can see your point for 16 bit conversions, but for only 10 bits I don't see any problems?.
 

Yes, for 10 bits, you are correct. Our conversions are typically above 13 bits (bipolar).
 
Thanks a lot everyone! I've surely learnt a lot!

For the time being, and taking into account that the only thing I've found at the local store was the KTY 10-62s, I think I will follow Nigel's suggestion.

One question: How can I get a "precision voltage reference" of 2,5V?
I'm currently feeding the circuit with 9-12V, and using a 7805 to get 5V.

As for the LM92, I've asked them and they don't have it :-( I have used before an I2C temperature sensor, but it was 7 bit and had a crappy precision/reproducibility (I don't remember the reference, it was long ago and a bad first experience in the world of µcontrollers with a BASIC-based one).
 
Last edited:
Cookies are required to use this site. You must accept them to continue using the site. Learn more…