VDO Oil Pressure interfacing with Arduino

Hi,

I want to connect an Oil Pressure sender to arduino. I bought the sender on eBay and the specs are 0 to 10 bars (0 to 150 psi) and the resistor range is from 10 to 184 ohms.

I was thinking in reading the value using a voltage divider with a 82 ohm 1% 1/4W resistor.

I've read the following topics, but still have some questions:

On this topic exists the following diagram

Do I really need this ? Couldn't I just use the 5v from the device power source and connect to the oil pressure sensor ?

I have the following information:

At maximum this will get 54 mA. Can I get from the 5v rail in the arduino, or should connect to the DC-DC Step-down powering up the arduino ?

The other problem should be the power dissipation, on the lowest level the resistors will consume 0.27W, and I'm using a 0.25W rated resistor. Should I upgrade to a 0.5W one ?

In the end the wiring scheme should be like this:

Where the first resistor will be the oil pressure sender and the second one the 82 ohms resistor, and I will measure the voltage in A0.

390ohm resistor between the 3.3volt pin and A0. Sensor from A0 to ground.

Add this line in void setup()

analogReference(INTERNAL); // read the sensor with the internal 1.1volt Aref

Low power, stable, and a lot of A/D values to work with.
You might have to experiment with a Steinhart–Hart formule if you want a more lineair readout of pressure.
Leo..

I didn't fully understand your answer, but I will read and investigate better tomorrow. You're saying that my calculations and schematics are right, but in order to improve the value readed by the sender I should do what you suggest, right ?

Which part don't you understand.
I suggested to supply the voltage divider from the 3.3volt pin.
That is more stable than the 5volt rail, and a lower voltage on a low-resistive sensor is less power wasted.
Enabling the internal bandgap reference allows you to use the full A/D range.

Diagram #1 is ok for testing. #2 has added protection.


Leo..

In addition, R5 and C1 as shown in the schematic are used as a low pass filter (and current limit) to provide signal conditioning to the input of the A/D. Especially in automotive etc. type applications (which tend to have all sorts of strange transients), you need to provide input protection like that to help prevent blowing your board up. You will also need to make sure the ground of the board and the ground of the sender are very close together to avoid all sorts of goofy readings due to current in the ground wires.

Wawa

I have a question not related to the OP.
What did you use to draw the diagram in your last post?

detown:
What did you use to draw the diagram in your last post?

LTspice

Ok, finally got time to check everything.

Everything is almost good, except one thing. I have a ebay pressure sender that for now I use a 100 ohm resistor to "emulate". The voltage divider I use also a 330 Ohm in a 3.3v with a LD33V.

This is the scheme, https://tinyurl.com/zqcuegn, and the analogRead should read 157, but I got 164. Some times, depending where i put the negative of my voltmeter i get the 157, but most of the time is 164 or higher. Could be some interference ? I already change the Arduino Nano clone to a Arduino Uno original that improved, but still not perfect.

EDIT: here is another schematic https://circuits.io/circuits/2527463-car-sensor-controller/

If you get an A/D value that low, then you didn't do what I explained in post#1.

Add this line in void setup()
analogReference(INTERNAL); // read the sensor with the internal 1.1volt Aref

Post your code.
Leo..

Thanks for your reply Leo.

I've commit the code to my github repo, although I have some problem with printing values on bluetooth serial and computer serial, everything is working fine.

I will try to add a diagram of all the components wire together but I have to find a software that have a MPX4250AP sensor and a bluetooth component to map.

Yesterday, before I go to sleep I tried one more thing. Because the sensor causing problems was the oil pressure, I have wire the 3.3v from arduino directly to that sensor (using LD33V for the other 2) and a dedicated ground also for that sensor (you can view on this diagram): https://circuits.io/circuits/2527463-car-sensor-controller/

Note: I test this circuit using 100 ohms resistor for oil pressure sensor, 220 ohms for the oil temperature and 10k ohms for water temperature to simulate their values.

Remember the 1.1V internal reference needs calibration - there is a lot of variation between
devices, but for any given device it is stable and pretty accurate - this means measuring
your particular Arduino's response and either putting it in the code (or better in the EEPROM
so the code doesn't have to be changed for each Arduino).

You still didn't use 1.1volt Aref.

With 1.1volt Aref, you should get A/D values of 700-750 with 330ohm/100ohm. Not ~160.

You also didn't tell us about other sensors. That might change things.
Leo..

Leo, note that I changed the position of the R1/R2 of voltage divider.

Take a look at this doc, Sensors sheet - Google Sheets

I still doesn't understand very well the function of the AREF being 1.1v, but I will take a look. For now all the values match up.

SpeedDragon:
I want to connect an Oil Pressure sender to arduino. I bought the sender on eBay and the specs are 0 to 10 bars (0 to 150 psi) and the resistor range is from 10 to 184 ohms.

All the advice given is based on that.
You didn't mention temp and pressure sensors.

Aref is the ruler that measures things.
A short ruler with 1024 divisions is measuring small things more accurately than a longer ruler with 1024 divisions.
Leo