Hi can someone help me with this sensor I can't find any code or help on the net I have a datasheet that reads like this
Accuracy ±2.5 %
Analogue Output 4.7 V
Housing Material Epoxy
Maximum Operating Temperature +125°C
Maximum Pressure Reading 700kPa
Media Measured Air
Minimum Operating Temperature -40°C
Minimum Pressure Reading 0kPa
Output Type Analogue
Pressure Reading Type Differential
Response Time 1 ms
Supply Voltage 4.75 → 5.25 V dc
Terminal Type PCB
I need to output the analogue signal to psi to my serial monitor
Connect the sensor to 5volt, ground and analogue in (A0).
And use Examples > 01.Basics > AnalogReadSerial.
See what you get in the serial monitor.
Try different pressures.
You will have a "zero pressure" value (~45), and a "700kPa" value (~980).
If that works, then think of mapping that to a psi/bar/kPa value.
Leo..
http://cache.freescale.com/files/sensors/doc/data_sheet/MPX5700.pdf
If you look at the datasheet, you will see that the output is not the full range from 0 - 5volt.
More like 0.25 - 4.75 volt, so 0 - 7bar will be ~50 - ~975.
Still 90% of the usefull A/D range with default 5volt Aref.
I suppose this gauge model is for an air compressor.
There are other models for other pressure ranges e.g. 5100 or 5050.
Post your code. Maybe we can improve it.
Leo..
The pressure is 0 to 700kPa, which results in a voltage of 0.2 to 4.7V.
The pressure span is 700kPa, for a voltage span of 4.5V (according to datasheet).
Get the pressure from the voltage.
int rawADC = analogRead(A0);
float volt = (float) rawADC * 5.0 / 1024.0;
float kpa = (volt - 0.2) / 4.5 * 700.0; // minus offset, divide by voltage range, multiply with pressure range.
The result improves when averaging is used for these sensors.
const int numAvg = 20;
unsigned int total;
total = 0;
for( int i=0; i<numAvg; i++) // maximum 60 will fit in a unsigned int.
{
total += analogRead(A0);
}
// Add half a bit. This is correct, but trivial.
total += numAvg / 2;
float volt = (float) total / (float) numAvg * 5.0 / 1024.0;
float kpa = (volt - 0.2) / 4.5 * 700.0; // minus offset, divide by voltage range, multiply with pressure range.
Do not connect the unused pins. Don't connect them to ground.
hello , I was following your discussion from the outside as they are interested in the project , in particular, are in possession of a BMW motorcycle and with this project I wanted to try to align the cylinders , are already in possession of the sensor mpx5700dp , if not too much to ask you to publish complete the sketch so maybe I can try to adapt it to my needs and even share it. I would be very grateful.
Where do you get the volt*5/1024 to convert to pressure values?
I am confused about how this sensor works. Is there an ability to display 2 output values? The output of high and low ports?
thank you