Go Down

Topic: Measuring temperature with an NTC resistor and an Arduino Due (Read 734 times) previous topic - next topic


Hello Arduino Forum "Science and Measurement" - Here is Tech High School in Thisted calling:
A simple task as measuring the temperature with an NTC resistor - with experience collected through a couple of years. Measurement results (incl redundant debugging info!) is carried via the serial USB to the serial communication window in the Arduino IDE.

Hardware: I should really include a Fritzing scotch in order to show the simple measurement setup that can be done on a breadboard: A 10kOhm resistor R1 in serial connection with an NTC resistor with reference value 10kOhm measured at 25 degC. Analog port 0 is connected where the two resistors meet. Remember ground and VCC=3.3VDC at the R1 and R_NTC ends respectively.

About measurement precision: The data sheet from the vendor of the NTC resistor, Vishay, is very accurate and with a lot of info. I have extracted a lot of info into an excel sheet. In the [0..100]degC interval it should be possible to reach fractions of one degC as precision. But I reckon the reference value of the chosen NTC resistor becomes the "weakest link in the chain": I would recommend to buy a lot of NTC resistors, temperate them at 25 degC and then by measurement with a multimeter divide them in two piles: Those at 10kOhm within 1 pct, and another pile with the rest. Use only the best samples after that!

There are of course a lot of more precise ways to measure a temperature once you have an Arduino Due - but there is a lot of basic learning and understanding in this project. In order to avoid electric noise we measure 100 times and take the average. This goes very fast on a Due. We have spent time trying to time adjust the measurement cycle to take exactly 5 seconds. This can be done to incredible accuracy with the delay_microseconds() - but it's probably not worth it - at least in this simple assignment.
Regards, and let me hear if you can use some of this!? Positive suggestions with improvements and corrections of errors are of course welcomed! Write to me if you would like the attachments in their orig form: .pptx .docx .xlsx. Regards, Steenoluf@gmail.com


It might be better just to buy 1% parts. When I made thermistors (a long time ago) they were sorted by a binning process. All the tested parts that fell within a 1% tolerance, for example, were binned as 1% parts. Those that fell outside the 1% tolerance were tested for 5% tolerance. Those that fell outside the 5% tolerance were binned as 10% parts. You might have a hard time finding a 1% part in a bag of 10% parts.
Also, NTC thermistors have a non-linear RT curve which will affect on your sub one degree accuracy requirement.


An ideal 10k resistor with 10k NTC and 12-bit A/D has a resolution of about 40 A/D values at 25C,
but only 8 A/D values per degree at 100C.
That's 10 and 2 values per degree at the above temps with a 10-bit A/D.

A digital DS18B20 has a constant 16 values per degree C over it's whole temp range.

Go Up