Use NTC 10D-9 Thermal Sensor
We have a lot of NTC 10D-9 sensors and another similar sensors in stock, now we have a simple tutorial about how to use this one. You can get the NTC serials sensor here.
First according to the datasheet, temperature and resistance is a function of the relationship.
Rt = R *EXP(B*(1/T1-1/T2))
Of the above formula is explained as follows:
- RT is the resistance of the thermistor in the temperature T1;
- R is the nominal resistance of the thermistor T2 at room temperature;
- The B value is the important parameters of the thermistor;
- EXP is the n-th power of e;
Where T1 and T2 refers to the the K degree that the Kelvin temperature, K = 273.15 (absolute temperature) + degrees Celsius;
According to the Datasheet we know that NTC 10D-9 with a thermal resistance of 10 ohms (standard 25 degrees), the B value is 3000 ohms.
The point is that The Exp and ln is the inverse function, but in Arduino, math.h library only log10 and log, the log is ln (very strange)
So we form a new quotation like this:
T1=1/(ln(Rt/R) /B + 1/T2 )
Serial connecting the NTC sensor and 100ohm resistor to 3.3V-GND, and measure the voltage at A0-GND for NTC sensor.
Code is as follows
[c]
#include ;
void setup(){
Serial.begin(9600);
}
void loop(){
double val=analogRead(0);
double fenya=(val/1023)*5;
// Ohm Law r/100=fenya/(3.3-fenya)
double r=fenya/(3.3-fenya)*100;
Serial.println( 1/( log(r/10) /3000 + 1/(25+273.15) )-273.15);
delay(1000);
}
[/c]
Also note analogRead unit generally is .0049 volts (4.9 mV) per unit, this very strange too, we spent a lot of time to figure out this
5 volts / 1024 units or, .0049 volts (4.9 mV) per unit. The input range and resolution can be changed using analogReference().
It takes about 100 microseconds (0.0001 s) to read an analog input, so the maximum reading rate is about 10,000 times a second.
Syntax
analogRead(pin)
Parameters
pin: the number of the analog input pin to read from (0 to 5 on most boards, 0 to 7 on the Mini and Nano, 0 to 15 on the Mega)
Precise enough for me, and this connection is not very accurate, there is a lot of points can be improved.
The following records my hand resistance temperature changes
27.42
27.42
27.42
27.42
27.42
27.42
27.42
27.42
27.42
27.42
28.60
29.83
30.46
31.11
31.11
31.77
31.77
32.45
32.45
33.14
33.14
33.14
33.14
33.14
33.14
33.85
33.14
33.14
33.85
33.85
33.85
33.85
33.85
33.85
33.85
33.85
33.85
33.85
33.85
33.85
33.85
Inadequate:
The heat of 100ohm resistor is very big, so the resistance will change, so it’s getting more and more inaccurate.
The improvement is also very simple:
- Using a low voltage to reduce the heating.
- Use a resistor with a value which is more close to the NTC sensor in series connection to achieve sufficient precise. (With Ohm’s law, while Read was int value)
- Or you can use the nominal resistor with large value.
Comments (2)
That would be good for battery monitoring. That is how the tesla cars warn people way before they catch on fire.
works!