NTC Temperature calibration

I was working on a simple project, using a ntc 10k termistor between the pins A0 and A1, with a HIGH on the A1 to drive the NTC, and a 10k resistor between the NTC and GND,and writing the readings to the eeprom.

im trying to map the output to a ultilizable temperature, but i cant get a precise temp. someone says how to map the ntc to a utlizable °c or °f?


Its a matter of maths rather than calibrating.

Here is some example code from '30 Arduino Projects fro the Evil Genius':

#define beta 4090 // from your thermistors datasheet
#define resistance 33

long a = analogRead(analogPin);
float temp = beta / (log(((1025.0 * resistance / a) - resistance) / resistance) + (beta / 298.0)) - 273.0;

Mapping doesn't probably help you, unless your NTC is linear. If it is not linear, you need to create correction map for it.

Cheers, kari

how i do this?

By testing the sensor with calibrated sensor, and creating an array. Starting with the lowest temperature, getting compared values to your array, I would use Excel or other application. Can't think anything else here.


They are not linear - hence the formula I posted.

I should have explained more..

Beta is a value that you will find on the datasheet for the thermistor and resistance is both the value of the thermistor's nominal resistance (I think at 25 deg C) and the value of the series resistor (in K) that it forms a potential divider with.

You can make a lookup table, but why would you want to, when you can do it in a line of code?

If you have 5 cheap thermistor, you probably have 5 different curves to observe. If you need presice measurements (as good as you can get with these) you most likely need to create calibration curve for each of them. Easier to avoid using these.

These are just my observations.

Cheers, Kari