Dealing with PT1000 probes

I designed my new central heating system in the most flexible way: it basically has heat generators, heat consumers, and a heat store. It has a hot water cylinder, used as the store; the generators are 6 solar panels (thermal, not photovoltaic), and a wood-based water boiler (the livingroom fireplace); the consumers are the hidraulic radiant floor (used to warm-up the house), the domestic tap hot water, and the swimming pool.

My new system as just been installed (a Rigsun Stratus cylinder with Alpin panels) and is working very well (a big thankyou to the HotSeason guys! 😉 ); now I want to keep a record of all the relevant system’s temperatures. The solar controller has acess to many, but I also need to know the radiant floor intake and return temperatures. For that, the fitters installed a couple of sheaths to receive Rigsun (actually, Resol) PT1000 probes.

I’m using an Arduino to bridge the software to the PT1000 probes, so now I only needed to study the details of the sensor reading circuit. The PT1000 changes it’s resistance with temperature, more specifically 3.85Ω per degree Celcius. I’m looking for the simplest solution that fully satisfies my needs (read: cheapest possible). A simple voltage divider circuit will give me a voltage value the ATMega can read. The PT1000 ranges from 1000Ω to 1385Ω from 0-100˚C, wich translates to a small voltage range. A simple study showed me which was the best candidate for a company fixed resistor that gives the bigger voltage swing:

I simply plotted the voltage divider equation. The red curve is the output voltage, the blue curve is the voltage swing in function of the companion resistor value. In the best case resistor (about 1150Ω, that’s the highest point in the blue curve) we have a 0.4V swing, but values in the 2.5V area. In the simplest cases, the ATMega reads values from 0-5V or 0-1.1V (internal reference). With the 5V reference, that’s a 1.2˚C resolution, not great.

I tried to change the resistor to lower the working voltage (to be within the 1.1V reference); that gave me a 5500Ω resistor, 0.23V swing, and a final resolution of 0.45˚C. Much better. Obviously, a better approach was to use an opamp to amplify the signal, or buy an off-the-shelf PT1000 4-20mA converter. But remember, I’m looking for the simplest/cheapest solution. Half a degree Celcius of resolution is good enough for what I have in mind.

I know I said this worklog would be in portuguese but hey, this post was already written by then… sometimes the Internet time flows in wierd patterns… 🙂