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:
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.
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.
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.
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).
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