Pages: [1]   Go Down
Author Topic: How read signal from car oil temperature sensor?  (Read 2576 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Full Member
***
Karma: 0
Posts: 247
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I am trying to read the temperatures coming out of my car's oil temperature sensors using my Arduino.

Does anyone know what I need to do?

All I know is that the oil temperature sensor is resistance based.

Any help is appreciated.

Thanks.
Logged

Massachusetts, USA
Offline Offline
Tesla Member
***
Karma: 201
Posts: 8699
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Did you want the car to be able to use the same sensor at the same time?  If so it probably already has a voltage across it.  One side is probably grounded and the other side is probably hooked to a power source.  You may be able to use a voltage divider to get the voltage drop across the sensor into the range 0 to 5V needed for the Arduino analog inputs.  Measure the voltage drop across the sensor on both a cold and hot engine and report back.
Logged

Send Bitcoin tips to: 1L3CTDoTgrXNA5WyF77uWqt4gUdye9mezN
Send Litecoin tips to : LVtpaq6JgJAZwvnVq3ftVeHafWkcpmuR1e

Dallas, Texas
Offline Offline
God Member
*****
Karma: 0
Posts: 861
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

More than likely the sensor is a thermistor. At room temperature the resistance will be around 2K ohms dropping to around 100 ohms as the temperature goes to 150 C. In a modern automobile one terminal probably goes to the ECM where it's connected through a resister to 5V. The other terminal is connected to ground. You will need to interface it to your Arduino through a high input impedance buffer so as not to affect the signal the ECM sees.
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 167
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Get a service manual for your car and check the section for troubleshooting the oil temp sender (factory manuals are the best IMO) it should tell you which voltages are expected on which pins.  As long as the procedure doesn't require you to unplug the sensor to test it you can follow exactly the same procedure to interface with your arduino as long as you're using a high impedance circuit as EmilyJane said.
Logged

0
Offline Offline
Shannon Member
****
Karma: 200
Posts: 11694
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Remember that there willl be a lot of electrical noise present near a car engine so a low-pass RC filter is probably needed to reduce this before measuring the signal.
Logged

[ I won't respond to messages, use the forum please ]

Dallas, Texas
Offline Offline
God Member
*****
Karma: 0
Posts: 861
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

It Might take all the fun out of the project but you could extract that reading and a lot more directly from the ODB connector.
Logged

Dallas, Texas
Offline Offline
God Member
*****
Karma: 0
Posts: 861
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I checked the Atmega328 data sheet after I posted. It looks like the input impedance to the ADC is 100 MOhms. That is high enough to prevent any loading of the input to your ECM.

Added thought:

There would be at least one advantage from buffering the signal. For example, use a single supply instrumentation amplifier with a separate reference pin like an AD623 or an AMP04 set for a gain of 1. The advantage would be that your signal would come into the IA differentially which, if you use a twisted pair for hookup, would give you lots of noise rejection. The reference pin would be grounded near your circuit which would also help with noise rejection. Finally, the low impedance output of the IA would help reject noise pickup at the input to the Arduino.
« Last Edit: August 02, 2011, 07:34:53 pm by EmilyJane » Logged

0
Offline Offline
Full Member
***
Karma: 0
Posts: 247
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thanks for all the replies.

The temperature sensor is from 0-150 degree centigrade range.

Imagine there no noise etc. How would my voltage divider look like?

Thanks.
Logged

Dallas, Texas
Offline Offline
God Member
*****
Karma: 0
Posts: 861
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Can you first measure the voltage across your transducer with a DMM and tell us what the value is at cold and hot?
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 42
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I did not want to hijack your thread but I'm working on the exact same thing. I plotted the resistance of my 150c oil temp sender. You can see the plot in this thread: http://arduino.cc/forum/index.php/topic,69501.0.html.
Logged

Dallas, Texas
Offline Offline
God Member
*****
Karma: 0
Posts: 861
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Can you first measure the voltage across your transducer with a DMM and tell us what the value is at cold and hot?
Assuming you have done this and the value doesn't go above 5V, you can feed it directly into an analog input on your Arduino. Your question assumed there was no noise. If this is the case, you are good to go. If it turns out that your signal:noise ratio is unacceptable then you will need to do something else. Conditioning the signal with one of the instrumentation amplifiers I mentioned earlier is one of the things you can do.
Logged

0
Offline Offline
Full Member
***
Karma: 0
Posts: 247
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Which pole do I feed into the Arduino?

Negative or positive?

So if I have understood this correctly, the oil temperature sensor in the car is already in a voltage divider circuit?

Tnx.
Logged

Left Coast, CA (USA)
Offline Offline
Brattain Member
*****
Karma: 361
Posts: 17263
Measurement changes behavior
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Measuring just across the sensors terminals won't tell us if it's a ground based measurement or not, which the arduino needs as it's a single ended analog input measuring Vs the arduino ground reference. I would want reading both from across the sensor terminals and also each terminal Vs auto's ground. No?

I.E., one of the sensor's terminals must be at vehicles ground potential to be useful for wiring the other sensor terminal to a arduino analog input.


Lefty

« Last Edit: August 16, 2011, 11:53:00 am by retrolefty » Logged

Dallas, Texas
Offline Offline
God Member
*****
Karma: 0
Posts: 861
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Correct, lefty. Almost all of this type sensor are ground referenced but a quick test will ensure that that is the case.

Once that is determined for sure, I would check to see that the sensor voltage doesn't exceed 5V. If it is a thermister, the highest reading will be when it is cold.

Then, obviously, the terminal that is positive with respect to ground goes into the Arduino. OP has already successfully wired up an exhaust gas temperature circuit so much of this he may already know.
Logged

Pages: [1]   Go Up
Jump to: