Pages: 1 2 [3]   Go Down
Author Topic: NTC Thermistor Integration  (Read 3197 times)
0 Members and 1 Guest are viewing this topic.
Anaheim CA.
Offline Offline
Faraday Member
**
Karma: 44
Posts: 2808
...
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

As I remember the 'curve' is most non linear and difficult to achieve any accuracy... traditional 3 point methods don't work, probably why they see limited usage (at least the old ones) as a matter of fact a common silicon diode is easier to calibrate to 2 - 3%. It would seem to me to be much easier to use a thermocouple. There are several companies that provide the necessary cold point compensation as well as provisions for the different types of junctions (Gain Adjust) thus making an interface that is Much easier to use.
Just a stray thought as everyone has a different method of solving a problem and sometimes it is good to make a list of the options and carefully consider all sides first.

Doc
Logged

--> WA7EMS <--
“The solution of every problem is another problem.” -Johann Wolfgang von Goethe
I do answer technical questions PM'd to me with whatever is in my clipboard

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 98
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

My calcs are off by 2'C max from what I have tested.  I am going to try their calcs to see what it gives me.  Thanks for the notes on the web post. 
Logged

Global Moderator
Netherlands
Offline Offline
Shannon Member
*****
Karma: 169
Posts: 12448
In theory there is no difference between theory and practice, however in practice there are many...
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


for non linear mapping use Multimap() - http://arduino.cc/playground/Main/MultiMap -

add as many points to get the accuracy you want (until out of RAM smiley-wink
Logged

Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -
(Please do not PM for private consultancy)

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 98
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Cool.  Will give it a look over when I get back from holidaze. 
Logged

Anaheim CA.
Offline Offline
Faraday Member
**
Karma: 44
Posts: 2808
...
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ME again, I believe the lookup tables are more accurate and you don't need the whole set just for the temp range you are interested in... with a little margin.

Doc
Logged

--> WA7EMS <--
“The solution of every problem is another problem.” -Johann Wolfgang von Goethe
I do answer technical questions PM'd to me with whatever is in my clipboard

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 98
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Oh are they tables or a formula?  I found a formula. 
Logged

Anaheim CA.
Offline Offline
Faraday Member
**
Karma: 44
Posts: 2808
...
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

as I remember it wwas a formula for using his data tables... but it was several month's ago, If I get a chance tonight (9:23P) I will go look at his website again  and if not I already has a note for me to do it in the morning when I am 'fresher' and I should have the stuff posted or at least a link or URL directly to the data. Hope this helps and I still think that you might consider another measurement method as what you are describing would be a bear to replace and re-calibrate a thermistor or at least you might see just how well the cal holds for a 'different' thermistor, not one of the same batch. Again, just some random thoughts.

Doc
Logged

--> WA7EMS <--
“The solution of every problem is another problem.” -Johann Wolfgang von Goethe
I do answer technical questions PM'd to me with whatever is in my clipboard

Peoples Republic of Cantabrigia
Offline Offline
God Member
*****
Karma: 6
Posts: 691
Arduino happiness
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

FWIW,

I used a multi-plexing chip with several known resistances attached to calibrate Thermistor outputs. The manufacturer of a quality Thermistor (US Sensors, et al) publishes resistances for their thermocouples across a wide temperature range. So, once you know what the ADC should be producing for a given resistance, you can use a least squares approach to figuring out how to compensate for offset and gain errors (I happen to use five precision resistors to calibrate with). For a computational approach, do a search for Least Squares here.

Once ADC outputs have been corrected, plug the corrected results into a lookup / map table with data you've previously calculated (I'm planning on using flash memory for this) and from what I can tell, the Arduino should be able to get thermal accuracy to within 0.2*C while using a nominally +/- 0.1*C accurate thermistor. The resolution is significantly higher than that, so Delta-T calculations should be significantly more accurate. For now, the line fit shows R^2 to be around 0.99988, which is pretty close to 1.
« Last Edit: April 20, 2012, 11:11:25 am by Constantin » Logged

Anaheim CA.
Offline Offline
Faraday Member
**
Karma: 44
Posts: 2808
...
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Yes you are correct sir. In all respects. My thoughts were to the applicability??? of a thermistor for that application, for several reasons that I don't need to state... The Tables and the math involved is Here:                <http://www.phanderson.com/arduino/index.htm>, there is a lot of interesting knowledge here. At least enough to interest my small But Active mind and the Arduino is but a small part of his (Anderson's) work.
I Do Hope this Helps.

Doc
Logged

--> WA7EMS <--
“The solution of every problem is another problem.” -Johann Wolfgang von Goethe
I do answer technical questions PM'd to me with whatever is in my clipboard

Peoples Republic of Cantabrigia
Offline Offline
God Member
*****
Karma: 6
Posts: 691
Arduino happiness
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

As with any sensor choice, there are trade-offs that need to be made. Cost/accuracy/speed/resolution/etc. For my application, thermistors offer pretty good cost/performance vs. 'better' solutions like 4-wire RTDs.

There are a couple of examples on this site how to use Steinhart-Hart equations to calculate Thermistor temperatures. I prefer doing all the hard work ahead of time by characterizing the temperature output directly from the ADC output. That takes more work and requires each type of thermistor to be characterized individually. However, the much lower code count later makes it worthwhile because that leaves more RAM and CPU processing cycles for other things. In my particular instance, it's just a (ln) function with a constant that converts corrected ADC output directly... but I needed to pre-calculate the various components of said equation for each thermal temperature bracket to minimize non-linearity. The result is ideal ADC-temperature conversions that are in violent agreement to 8 digits behind the zero.

Storing these constants in flash memory then takes up no RAM and still executes quickly.
Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 98
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Here are two urls I found when it was first mentioned:

http://www.phanderson.com/picaxe/lin_thermistor.html

http://www.phanderson.com/picaxe/picaxe_thermistor.html

Again, unfortunately, I have no documentation at all on my thermistors (I bought 5), so I can't assume anything about them.  Anything within 1'C is fine by me.  My current R2 is around 0.98x from what I remember.  
Logged

Pages: 1 2 [3]   Go Up
Jump to: