The two thermistors are sitting right next to each other and I have a thermometer sitting 10cm away that reads 25.3ºC. Yet my thermistors are reading 23.67ºC and 25.51ºC
Why is that? Is it because of the resistors that have a slightly different value? Is it because of the thermistors' tolerance?
As I understand it, thermistors need to be calibrated individually if you want accurate results, as the manufacturing tolerances and the nature of the devices makes it hard to produce precisely consistent results. You'd need to record the resistances at a variety of temperatures to make up a look-up table.
But they are cheap, though, which makes up for it
In your Arduino code, how are you converting from the 0-1024 readings you get from the analog input pins into temperature?
Worth looking through this - skip down to the temperature conversion section...
When putting analogReference(EXTERNAL); and hook up the AREF with 3.3V pin of the Arduino, I'm getting readings of 46—46.3ºC and 48—48.3ºC when it should be around 24.6ºC. I'm sure I'm missing something out.
I added analogReference(EXTERNAL); in setup() and hooked the AREF pin with the 3.3V pin, nothing else. I took two thermistors that had closer values to each other at room temperature and it's somewhat better, only 1C difference between the two sensors. 25.31C and 24.53C vs 25.0C on the thermometer. But still not quite there.
kf2qd:
You were getting a good value before you used 3.3V as the ref, why did you change?
Sorry I read WHAT did you change not WHY. I changed because I read that it might make the result more accurate to use regulated and stabilised 3.3V rather than flaky 5V from USB.
I have a thermometer sitting 10cm away that reads 25.3ºC. Yet my thermistors are reading 23.67ºC and 25.51ºC
10cm = 4", that's a light-year when measuring temperature.
Aside from that, what you have to realize is that, with "analog" electronics
[and as others have mentioned] there is always a wide tolerance on devices
and measurements. To get real accuracy, designers good to extreme limits
on selecting low-tolerance parts, like 0.001% resistors and stable voltage
references. Eg, the tolerance on your standard 3.3V regulator is probably 2%,
if not 5%, and then it varies all over the place with temperature.
IOW, saying temperature = 25.51ºC is almost meaningless for a ckt with
common thermistors and Arduino powered by a standard v.reg. You're
probably lucky to be within 2 degC.
Since there doesn't seem to be any info about the tolerance of those particular NTC thermistors anyway on the internet, and since +/-20% is a common rating for such devices to get temperatures with a few degrees is a very good result (they are 0.6% out on the thermodynamic scale).