Electronic – arduino – Alternate way to read Resistance temperature detectors (RTDs) with Microcontroller

arduinomicrocontrollerrtdthermistor

After reading many posts with difficulties reading a Resistive Temperature Detector (RTD) such as a PT-1000, NTC with e.g. an Arduino, I am wondering if a time based approach could be used:

If I take a 1000uF capacitor and charge it via the RTD to a certain voltage (measured by an analog input), this takes time that varies depending on the R value of the RTC. One digital output of the Controller must be used to charge and discharge all connected R-Cs and to let the Controller determine the exact starting time of charging. Once the analog input reaches the threshold of e.g. 90% V+ the time is stopped and R & T could be determined.

  • The obvious disadvantage is that reading T takes time and limits the
    sampling rate, but seems acceptable for most applications.
  • The obvious advantage is the simplicity of the circuit similar to a voltage divider.

Questions:

  • Is this idea reasonable at all?
  • What could be the accuracy of the reading for a PT-1000?
  • What are the tradeoffs in capacitance vs accuracy.

EDIT: Notes: This solution is intended for Arduino projects and not for a high volume products. The 0..1023 resolution 10 bit A/D converter of Arduino UNO's has a poor resolution for resistive devices with voltage divider yielding about 14 steps for 18 Kelvin. This is a theoretical idea and that is why it is posted here.

Update: Andy pointed out that capacitance change of the circuit could be a problem. I looked up that typically "Capacitance increases less than 5% from 25 ÂșC to the high temperature limit." If the capacitor is kept at room temperature, the problem could be controlled. Initial calibration due to tolerance of the capacitors could be problematic.

Best Answer

What you are talking about is called charge time measurement. There are even microcontrollers with built-in hardware to assist with this. Usually it is intended for measuring changes in small capacitances, like those of capacitive touch buttons.

While what you propose would work, it would have poor accuracy and more complexity, not less, compared to the traditional approach of using a single resistor and a A/D. Your method uses a capacitance value and a time value as reference. Time can be easily measured with great accuracy and resolution cheaply, and is not a problem. Capacitance, however, is. Even 10% capacitors cost more than "regular" types. %1 capacitors cost a lot more, if you can find them at all.

One advantage of your system is that it can have great resolution. This is basically dependent on how long you are willing to wait and how fast your counter can run in the mean time. Having a counter run at a few 10s of MHz is easily achievable in many modern microcontrollers. So if you're after small temperature changes, but don't care that much about absolute temperature, then this method isn't quite as silly as it would be otherwise.

However, a single fixed resistor so that it and the RTD form a resistor divider, then the result of that into a A/D is simpler and more accurate. If extra high resolution was really needed for some reason, I'd use a external delta-sigma A/D. Those are slower than A/Ds built into microcontrollers, but with much higher resolution. The slowness doesn't matter when you're measuring temperature and the sensor time constant is still many times the 20 ms or so conversion time of a delta-sigma A/D.