Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

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

Status
Not open for further replies.

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!
 
winterhunter said:
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!

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?.
 
Nigel Goodwin said:
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:
Status
Not open for further replies.

New Articles From Microcontroller Tips

Back
Top