designing amplifier for PT1000 temperature sensor  - Page 1
Forum section: electronics / projects

author: sean87
author_rank: Regular Contributor
timestamp: August 24, 2016, 07:11:30 am
content: Hi all,I want to use arduino due for measuring temperature using PT-1000 sensor for range -40C to 150C. I have come up with these draft information, I appriciate it if a pro person can confirm my toughts are OK before I pay a lot for parts and PCB and fail miserablyThe ADC of DUE is 3.3V and 12bits. so it means 0V willl be 0 and 3.3V will be 4095 (in an ideal world?)I have checked the PT1000 LUT, it seems that at -40C it has 842.7 Ohms and at +150C it has 1573.3 Ohms.so I need to adjust this range for my ADC input. e.g. at -40C the ADC should show 0 and at 150C it should show 4095.Here is the initial voltage divider, I chose R25 to be 10k to limit the current and possibly noise as well? so at -40C and +150C the voltage going to the input of first opamp will be:V(-40C) = (3.3*842.7)/(10k+842.7) = 256 mVV(+150C) = (3.3*1573.3)/(10k+1573.3) = 449 mVSo I need to map 256mV to 449 mV to approximately 0V to 3.3V, hence the amplification stages here:For mapping -40C to 0V I have (dont mind the values in the picture, they are crap) R26 = 33k and R27 = 2.7k, which yields:Vout = 3.3*2.7k / (33k + 2.7k) = 249mV which is 6.4mV less than 256mV (I choosed the resistor based on E12 range)And finally I need a gain of 7.34 to map 449mV to 3.3V:R30(feedback) = 68k, R28 = 10k Therefor gain = 68k/10k = 6.8xSo again, before I pay lots of money for PCB and components, do you think I will achive what I need?Thanks!

author: Kleinstein
author_rank: Super Contributor
timestamp: August 24, 2016, 12:53:57 pm
content: There is no real need to use 3 OPs. Extra OPs mainly add more drift / errors.One can do the amplification with a single OP: have the divider with the PT1000 go to the non inverting input and have the offset adjustment and gain setting at the inverting input. So it's only 4 resistors, the PT1000 and 1 OP. The only tricky part is only to calculate the right values for the 2 resistors that set the range. The two resistors to VCC (or reference voltage of the ADC used later) can be the same size (e.g. 10 K like in your circuit).

author: pelule
author_rank: Frequent Contributor
timestamp: August 24, 2016, 05:53:45 pm
content: I fully agree to Kleinstein, one OP (as non-inverting amplivier) is fully sufficiant and reduce your error sources.As you plan to use a PT1000, I assume you target a certain accuracy, so you need PT1000 linearity into account and may want to do a linearisation by SW anyhow. So the non-linearity of the supply resistor (here the 10k) can be included.You may also minimize the "selfheating" so want to reduce via the sensore to absolute minimum. You need an amplifier anyhow, so could reduce the sensor current and increase the gain of you amplifier.The drift of the supply is canceled out as used as reference also.You can't use the full 4095 bits (0V - 3.3V) - even the best Rail-To-Rail OP will not archieve an output over the fulll supply range. If you plan to do a SW offset and gain calibration, you may not want to use the fully 4095 bits for the temp range of your measurement anyhow. I recommend to do a rough error calculation and reduce the range by >2x that tolerance. For example a 1% error (+/- 41 bit) would need at least 82 bit reduced bit range to be able to do SW adjustment.PeLuLe

author: Kleinstein
author_rank: Super Contributor
timestamp: August 24, 2016, 07:54:54 pm
content: WIth 3.3. V and a 10+1 K resistance. The current will be about 300 µA. This about right for typical PT1000 if not very small.

author: nctnico
author_rank: Super Contributor
timestamp: August 24, 2016, 08:08:53 pm
content: With a 2k resistor and 3.3V supply the PT1000 response will be much more linear and offer greater signal output. A 16 bit ADC can be used to read the divider value directly with better than 0.1 degree C accuracy (so no need for an extra amplifier). Still you'd need a second order polynomal approximation to get an accurate reading over the temperature range. A good starting point is creating an Excel sheet with the temperature versus ADC values and use the graph function to derive a approximation formula with the given resistor. Oh, and use the 3.3V which supplies the divider as the reference for the ADC. Any error in the 3.3V supply will be cancelled this way.

author: pelule
author_rank: Frequent Contributor
timestamp: August 24, 2016, 08:24:01 pm
content: @ nctnicoThat's right but would not match the target ti use the integrated ADC of the Arduino.I did the Excel solution in the past. It's a quick and easy way to calculate.I did that time also the calculation of the required linearity values, at 12 bit 16 points of linearisation are fully sufficient.@ KleinsteinYes you are correct, ~1mW may not heat up so much.

author: rstofer
author_rank: Super Contributor
timestamp: August 24, 2016, 08:59:00 pm
content: Chapter 4, Section 4.3 here:http://web.mit.edu/6.101/www/reference/op_amps_everyone.pdfEven better:http://www.ti.com/lit/an/sloa097/sloa097.pdfThe first reference will use a real op amp (TLV2472) that goes pretty much to the rails - Figure 4-7.