Powering A Thermister

My ongoing project is to control the airflow through a race car's oil cooler (that sits under the boot floor). The thermister is;

http://www.tayao.com.tw/auto01.html

I am using a voltage divider to read the output and the Steinhart-Hart formula in an Arduino to calculate the temperature. No worries with that so far.

I originally wired the sensor from a 12v->5v buck converter. I did this as I am using it for other components and I wanted to take any load off the Arduino (although this sensor consumes minimal micro amps). The ground from the buck converter output is connected to Arduino ground. The issue I am seeing is that the temperature reading is 3 to 4 degrees celsius higher than it should be but also fluctuates +/- 4 degrees. I have checked that the voltage to the sensor is 5v.

When I power the sensor directly from the Arduino 5v pin the temperature is more or less correct and is stable.

The easy answer here is to power it from the Arduino and move on but I want to understand why the external power version fluctuates. Can anybody explain?

My thought for the incorrect temperature is that the ADC is converting the reading to 0-1023 based on the Arduino voltage (that I suspect is a bit under a true 5v) whereas the sensor has a full 5v. I cannot account for the fluctuations though.

Is it even OK to power the thermister externally to the Arduino/ADC circuitry?

I tried a 104 (100nf?) capacitor across the buck converter output + & - but it didn't make any difference.

I don't think I need to attach code or schematics seeing as this is a theoretical type question but I can if required.

My understanding is that switch mode power supplies (boost/buck converters) are kind of noisy and are not recommended for powering things that will use the analog to digital converter. Linear regulators (like the 5V regulator on Arduino) are better for that as you see.

Hi,
A car environment is full of electrical noise, it sounds like this is the cause.
Have you tried a 0.1uF cap between the arduino analog input and gnd?
Have you tried shielded wiring and or kept the thermistor wiring away from running along side other car wiring?

The difference in 5V supplies will probably be the offset problem, can you adjust the buck converter output to make the readings the same?

Tom… :slight_smile:

This is all sat on my desk at the moment so possibly minimal noise.

I have just discovered the AREF pin on the Arduino. I have reconnected the sensor that although there appears to be no difference between using the 5v pin and the Aref pin.

I just measured the amperage of the sensor and it is 0.7mA so absolutely no issue with driving it from the Arduino. I hear what you are saying about buck converters being noisey so will not power from it.

Is a 0.1uF a 104 labelled capacitor?

Mk1_Oz: Is a 0.1uF a 104 labelled capacitor?

Yes, 10 0000 pF or 100 000 pf or 100nF or 0.1uF Tom... :)

I have just discovered the AREF pin on the Arduino. I have reconnected the sensor that although there appears to be no difference between using the 5v pin and the Aref pin.

Does that mean that you are supplying power to the sensor from Vref?

groundFungus: Does that mean that you are supplying power to the sensor from Vref?

I am supplying power to the sensor from the aref pin. From what I have read this is the source of power to the ADC. Is that what you mean?

Mk1_Oz: I originally wired the sensor from a 12v->5v buck converter. I did this as I am using it for other components and I wanted to take any load off the Arduino (although this sensor consumes minimal micro amps). The ground from the buck converter output is connected to Arduino ground. The issue I am seeing is that the temperature reading is 3 to 4 degrees celsius higher than it should be but also fluctuates +/- 4 degrees. I have checked that the voltage to the sensor is 5v.

You can't get accurate ADC readings for such a sensor unless its powered from the Arduino 5V directly, its ratiometric. Connect the thermister circuit to 5V, not AREF, or you may damage the internal circuitry of the ATmega - AREF is only ever used as an input, and only if you select analogReference(EXTERNAL).

You'd not normally use a switch-mode supply for an analog sensor BTW, far too much noise as you have discovered.

I like to learn through failure...... lol