Reading thermistor voltage from another unit cause bias?

If I use:

analogRead(2);

to directly read 0-5v voltage from a sensor on another computer that uses a conventional thermistor circuit with pullup resistor... will that create any bias in the voltage to the other computer?

positive pin of sensor shared with other computer and wired directly to pin A2 on arduino through a low pass RC circuit. common grounds (no ground loops) between other computer, sensor ground, and arduino ground.

thx.

Please post a complete, hand drawn (not Fritzing) wiring diagram.
Image upload guide

jremington:
Please post a complete, hand drawn (not Fritzing) wiring diagram.
Image upload guide

I would like to add the yellow shaded portion to the thermistor and 'other computer' and know that it does not change the voltage reading to the other computer adc input.

thx

The analog inputs have extremely high impedance and do not load down a voltage source.

However, the ADC readings on the two microcontrollers will not in general be the same, because of the RC filter.

What is that filter supposed to be doing?

Why do you want to use two microcontrollers?

Finally, it makes no sense to use the input pullup resistor with the thermistor, because you do not know the value of the pullup resistor (and every single one is different).

Thx for reply.

jremington:
The analog inputs have extremely high impedance and do not load down a voltage source.

However, the ADC readings on the two microcontrollers will not in general be the same, because of the RC filter.

What is that filter supposed to be doing?

Why do you want to use two microcontrollers?

Finally, it makes no sense to use the input pullup resistor with the thermistor, because you do not know the value of the pullup resistor (and every single one is different).

Sensor is used by ECU on car for coolant temp. I want to eliminate additional dedicated sensor to Arduino and just read voltage from ecu sensor.

I know resistance curve of sensor and pull-up resistor in ecu. If I just read voltage then I calc temp in Arduino.

Car is noisy electrical environment and that RC filter cleans signal up great as I can see on scope.

ADC does not need to match and I’m not even certain how many adc steps the ecu sweeps. I just want to read voltage, calculate sensor resistance using the known pull-up resistor value in ecu. But don’t want to bias the voltage reading to ecu.

It sounds like you are saying that voltage to other computer would not be affected but RC filter may affect my reading at Arduino? Is there a voltage drop from either the resistor or cap in filter? Can that be calculated or included in my code where I convert voltage to temp? Or is it negligible?

For a thermistor in a car, it probably won't make any difference. But if it did? How would you know? One way you might find out is you might get an opportunity to rebuild your engine because the ECU did something stupid with an erroneous reading. (We know how well that's working at the moment for Boeing's MAX aircraft, don't we?)

For a 4-wire thermistor like you might use in a science experiment then it will absolutely make a big difference to the results.

TheMonkey:
If I use:

analogRead(2);

to directly read 0-5v voltage from a sensor on another computer that uses a conventional thermistor circuit with pullup resistor... will that create any bias in the voltage to the other computer?

positive pin of sensor shared with other computer and wired directly to pin A2 on arduino through a low pass RC circuit. common grounds (no ground loops) between other computer, sensor ground, and arduino ground.

thx.

Yes, it won't be accurate.

The normal thermistor circuit on the Arduino is fully ratiometric, which depends on the resistive divider
being powered from the Arduino's Vcc, which is also the default reference for the ADC.

Using a separate supply voltage from another device will mean a different voltage will be used for
the resistive divider than the Arduino's reference.

5V supplies on computers have only about +/-5% accuracy and often considerable noise too.

You could use a 1:1 resistor divider powered by the computer to allow the Arduino to sense its
voltage (relative to the Arduino's 5V), and thus correct for the difference, but this won't eliminate
noise and errors due to noise.

BTW its not a pull-up resistor, its one arm of the resistive divider (or half-bridge).

Pull-ups are for logic signals and don't need to be accurate, this is an analog circuit where
the resistor accuracy is vital.

MorganS:
For a thermistor in a car, it probably won't make any difference. But if it did? How would you know? One way you might find out is you might get an opportunity to rebuild your engine because the ECU did something stupid with an erroneous reading. (We know how well that's working at the moment for Boeing's MAX aircraft, don't we?)
...

bit of an extreme example. as far as knowing if it makes a difference, i can record the voltage to the ecu pin with a scope and lift the probe from arduino a couple times to see if voltage changes at all. i'll see what kind of risk i have for an engine rebuild lol. before i wire up though, was looking for comments whether the arduino circuit might have any obvious load to bias voltage which it sounds like it does not.

MarkT:
Yes, it won't be accurate.

The normal thermistor circuit on the Arduino is fully ratiometric, which depends on the resistive divider
being powered from the Arduino's Vcc, which is also the default reference for the ADC.

Using a separate supply voltage from another device will mean a different voltage will be used for
the resistive divider than the Arduino's reference.

5V supplies on computers have only about +/-5% accuracy and often considerable noise too.

You could use a 1:1 resistor divider powered by the computer to allow the Arduino to sense its
voltage (relative to the Arduino's 5V), and thus correct for the difference, but this won't eliminate
noise and errors due to noise.

BTW its not a pull-up resistor, its one arm of the resistive divider (or half-bridge).

Pull-ups are for logic signals and don't need to be accurate, this is an analog circuit where
the resistor accuracy is vital.

Thanks Mark. Great comment about measuring 1:1 divider and correcting, had not thought of that.

The whole tolerance stack is really not that critical. I'm going to give it a try. I'll report back as a matter of interest or any help to others that want to share a sensor with ECU.

That RC filter worked very well when I had this setup with it's own sensor. Before and after pic of the voltage reading. Scope set to AC so I could zoom in on voltage around 0v. It's within 1 adc step with the filter and I poll an avg.

The interesting part will be testing any change to voltage to ECU with scope when pin is lifted. I'll also be able to read ECU reading next to Arduino reading so I'll see any temp differences, however ECU only outputs 8 bit data in 1°c granularity through OBD so I can't really split hairs which is not a bother. Main idea was to read it direct so I can run fan PID algo using higher resolution by tapping into it direct instead of pulling from OBD (and get rid of a dedicated sensor). On Arduino, each ADC step is 0.1-0.2°c depending how close the sensor resistance is to the 'one-arm of the resistive divider' :slight_smile:

Reading sensor directly and calculating inputs for PID with 0.1c resolution instead 1.0c resolution from OBD helps the fan PID stay steady by quite a bit.

I modified my circuit for this setup and tested with the scope. It worked great. No difference to ECU reading or measured voltage going into ECU when the arduino pin probed on and off. Arduino temp reading was exactly the same as the OBD scanner although that readout does not show decimals. But the scope shows 3 decimal points which is well within any adc resolution, meaningful rounding, or voltage noise (even when cleaned up).

As Mark pointed out, I'm sure there is some effect from the filter but I could not measure it and the signal is super clean so all is good.

Big win, very happy about this. Thanks for the info, very helpful.