Help with PT 500 Sensor

Hi everybody.
first off all, please forgive me for creating a new topic, but i haven’t find the information that i need in other topics, or i have not used the search properly, anyway, someone please help me to measure the temperature with a PT500 sensor in analog input on arduino mega , i have tried the attached schematic but it doesn’t work properly , it has a fluctuation of ± 2 degrees at steady temperature , or a home made schematic of digital input with PT500

analog reads are influenced by several factors including the stability of your power supply.
You can check that with a Voltmeter /DMM.

One way to stabilize is to add a capacitor to the schema.

Another way can be doing multiple (raw) measurements and average them and use that as temperature

I recommend averaging for any sensor. My typical method is to average at least 10 readings.

The problem may be down to difficulty in measuring. It is common to amplify the signal first.

http://openenergymonitor.org/emon/buildingblocks/rtd-temperature-sensing

Have you tried swapping the position of the resistor and sensor ?

raschemmel: Have you tried swapping the position of the resistor and sensor ?

Yes, I have tried but have not been improvements

robtillaart: analog reads are influenced by several factors including the stability of your power supply. You can check that with a Voltmeter /DMM.

One way to stabilize is to add a capacitor to the schema.

Another way can be doing multiple (raw) measurements and average them and use that as temperature

I am using arduino 5v output, i have tried the 3,3v output also but the result is the same, and the arduino is powered by USB the voltmeter is reading a very stabile voltage up to 2 decimals the 3-th decimal is not that stabile

I have tride the capacitor (2200 uf/10 v) in parallel, small improvements, but not enough

Another way can be doing multiple (raw) measurements and average them and use that as temperature

Can you design a code to do just that? please.

Can you design a code to do just that? please.

uint16_t  averageAnalogRead(int pin)
{
  uint16_t  sum = 0;
  for (uint8_t i = 0; i < 16; i++) sum += analogRead(pin);
  return (sum + 8) / 16;  // rounding 8 = half of 16
}

use instead of analogRead

Hi, I suggest you sit down with a table of PT500 characteristics, OHMS LAW and a calculator and work out what voltage values you will have for the range of temperature you want to measure.

I think you will find that you do not have the resolution of the Arduino ADC to give you any workable readings.

You will need an instrumentation amplifier, particularly one specific for RTD to give you the output voltage you need to get workable readings.

http://www.sauter.se/fileadmin/sas/pdfs_och_doc/Svenska_Brochyrer_aquametro/3110e_temperaturfuehler.pdf

This site gives some values for PT500 at various temperatures.

I would suggest you use the forum search window to look for RTD and instrumentation amps.

Tom.... :)