NTC Thermistor readings varying...

Afternoon, I'm having some issues with my NTC thermistor and would appreciate some extra input.

I have calibrated the thermistor, and it should switch on and off a heat source according to the temperature.

After some tweaking, I was able to get the environment to stabilize at around 29 degrees on both the thermistor reading and the manual mercury-like thermometer.

It was fine a few days ago. Now I have returned to it, switched the circuit on again, and after leaving to stabilize I discover the manual thermometer is reading 25 degrees, but the thermistor still reading 29!?

This has happened a few times now. I'm certain there is no differing power drain caused by other entities in the circuit.

Any ideas?

Can you post your schematic?

Servo is not currently connected, latching relay triggers the 12v heat circuit.

Any difference in power source from prior run to present run?


Thats the trail of thought I originally had, but I'm using the USB on my laptop. Then I remembered the arduino has a 5v regulator built in so it couldn't really be the power source anyway unless using AC opposed to DC. I have also tried a 5v DC USB wall plug, to which it is still not reading correctly.

Connecting the thermistor to a spare output pin instead of the power rail on the breadboard would give the full 5v regardless would it not?

Does the reading change if you warm the thermistor with your fingers ? (just to ensure it doesn't read 29 all the time regardless of how warm it is).

Using the onboard regulator vs USB can often make quite a difference with analog devices since USB 5V can be a way off from actual 5V.

Arduino +5vdc board power is almost never exactly +5.00 vdc. When using USB power the +5vdc regulation is done in the PC and not by the on-board 5vdc regulator, and the USB standard says anything from around 4.75 to 5.25 meets the USB standards.

When using external Arduino power then the +5vdc is generated by the on-board 5vdc regulator that is again probably not exactly 5.00 but rather somewhere within +/- 5% of that, although it should say stable at whatever voltage it generates, +/- a little change with ambient temp changes. Any shift in the boards 5.0 voltage effects the calibration accuracy of the analogRead function as that voltage is the default reference voltage used by the A/D convertor.

One thing you can do to get a grip on this 'problem' is to figure out how much each count of the 0-1023 A/D count changes your temp conversion calculation. Then you can get a feel to how sensitive your temp value is to raw A/D changes.


Just to confirm, the reading does change according to temperature.

I have re-wired the thermistor into the circuit, and re-calibrated.

I am now in the process of testing. If all else fails, I do have some 5v regulators knocking around so I could wire the temperature sensor to that and take it from there.

Cheers for the input, I'll report back with testing results.

I'm not sure what I've done, but for now, it appears to have worked.

May have been something as simple as some loose wiring, so each time I was moving the project after storage the amount of wire contact was changing.

Fingers crossed for now XD

Cheers for the help guys.

If all else fails, I do have some 5v regulators knocking around so I could wire the temperature sensor to that and take it from there.

How do you measure? I presume you are using voltage divider similar to this setup -> Arduino Playground - Thermistor. Are you using one of the internal references or VCC? If you use VCC as a reference and divider input is connected to the same VCC, its actual voltage value won't affect your result.

It has been switched on and off several times today to test, and the problem appears to have been resolved, so for now I won't look into it any further.