Help with pressure sensor MD-PS002

Did anyone get this to work?

amtpdb1:
Did anyone get this to work?

Yes, I was able to get readings from my project. Jonte987 was correct, The MD-PS002 is a millivolt wheatstone bridge. In order to read it, you will need to use a weighing sensor amplifier. I used the following links:

HX711 Spec Sheet:

GitHub Library and Example Code:

The example code is for a weight scale and not for a pressure sensor. Both weight scales and this pressure sensor use wheatstone bridges and both send out readings in millivolts. I used the weight scale example to check my MD-PS002. I will be working on calibrating the output from grams to mPa. Beyond that I will be working on multiple vacuum pressure sensors with multiple HX711 breakout boards.

1 Like

Your attachment for Chinese to English translation is meachanical dimension of the chip, and Power IN OUT, Signal IN and OUT

Anyone know the maximum pressure of this? I know datasheet say 150kpa but its not enough for divelogger (15m maximum depth)... unfortunately diveduino project is dead and i2c sensor is expensive to play ...

srabsrab:
Anyone know the maximum pressure of this? I know datasheet say 150kpa but its not enough for divelogger (15m maximum depth)... unfortunately diveduino project is dead and i2c sensor is expensive to play ...

I have a spec sheet that has the "Overload Capacity" of the MD-PS002 is "2times" or 200Kpa. See attached pdf:

MD-PS002.pdf (108 KB)

Now I have one from ebay but seems doesn't work?

I try connect on pin 1 +IN 5V, pin 3 and 4 -IN zero(GND) and try measure mV on pin 2(+OUT) and 5(-OUT) but there is only half voltage (+-half) without any changes by change pressure. And what is very interesting - on output +OUT is minus and on output -OUT is plus .....strange

Something wrong with my circuit or this sensor is bad?

srabsrab:
Something wrong with my circuit or this sensor is bad?

I had no little to no success getting the MD-PS002 to read much from a multi-meter or direct to Arduino. I did try an Op Amp LM385 and was able to get a rough reading of 10, 20, 30... wasn't enough resolution for my project. I did get the HX711 chips amplify the signal and the resolution is very fine with the 24-bit HX711. I used a breakout board with the HX711 chip and it was made for stress strain gauges. But, the HX711 can be used on wheatstone sensors like the MD-PS002.

The HX711 breakout boards are cheap on eBay:

I tryed also LM324 amplifier (have some expensive sensor MS 5407 and I mean i found something equal and very cheap for experiments), but resolution is not the problem now. If datasheet say 80mV so the difference must be about 80mV by maximum pressure not 2,5V constant without any dependence on pressure... (with 3V power is 1,5V constant ... this mean half power voltage like dividing resistance....)....

srabsrab:
If datasheet say 80mV so the difference must be about 80mV by maximum pressure not 2,5V constant without any dependence on pressure... (with 3V power is 1,5V constant ... this mean half power voltage like dividing resistance....)....

I'm also having the same problem as srabsrab had, the output + and - gives me half of the DC voltage supply (5V). I measured the voltage drop accross the resistance between IN+ and OUT+ as well as IN+ and OUT-, they gave me 0V and 2.5V.

I just wanna ask if there's anyone who tried this sensor before and I really need some help and guidance on how to operate this sensor. TQ.

I use HX711 with my PS002 vacuum sensor and have no problem. When You use HX711 You should connect HX711 E+ pin to PS002 +IN pin; E- to both -IN; A+ to +OUT; A- to -OUT. You will have 4 wires from PS002 because both -IN to connected together.

You should install HX711 library and then You can use standard HX711 sketch from examples. If You will set 64 scale in the sketch You will take vacuum pressure in pascals. Full vacuum will show You -100 000 pascals.

I was able to operate the sensor using HX711 module but I´m getting incremental values, I mean, read_average(byte n) function is returning higher and higher values after system restarts so tare(byte n) is impractical this way.

HX711 breakout board.
Onboard regulated 4.2volt excitation voltage for the bridge, instrumentation amp, and 24-bit A/D.
Well supported with code here.

Pressure sensors with buildin instrumentation amp are also temp compensated.
The HX711 setup is not.
Leo..

MD-PS002 data sheet in English:

Read about the HX711 data sheet, one of which is "Selectable 10SPS or 80SPS output data rate"
How to choose the rate?
What is the default value?

Default is 10SPS.
With 80SPS you trade accuracy for speed.
Most boards have a link you can cut, and/or solder bridge.
Leo..

Does anybody have a code snippet or proof of concept of how to get the MD-PS002 and HX711 to work? Ive tried everything I can dig up and have not yet been able to get any data from this sensor. Ive triple checked the wiring, tried multiple libraries, multiple sensors, etc.

addennis:
Ive triple checked the wiring, tried multiple libraries, multiple sensors, etc.

So why don't you show us what you have done, and what did/didn't work.
Only then you might have a chance of getting help.
Read the "how to post" guidelines first.
Leo..

Hi everybody,

I am making a vacuum meter. It works pretty well, but I don't understand how I can calculate it.

maybe someone knows how to handle that.
I have an arduino Nano with an HX711 with dar to an MD-PS002 sensor.
I want to read the Psi data on an Oled display 128X32.
I am now guessing what the Psi should be. I do that with an auto vacuum analog meter.
But that is not the right way.

I have the code for the Arduino here:

#include "HX711.h"
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define OLED_RESET LED_BUILTIN
float analog_pot=0;
#define DOUT 2
#define CLK 3

HX711 scale;

//float calibration_factor =5.1714924102396; // 1 Psi is 5.1714924102396 cm Hg
float calibration_factor =51714; // maby

Adafruit_SSD1306 display(OLED_RESET);
#if (SSD1306_LCDHEIGHT != 32)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif
void setup() {
Serial.begin(9600);
scale.begin(2, 3);
scale.set_scale();
scale.tare(); //Reset the scale to 0
long zero_factor = scale.read_average(); //Get a baseline reading

display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3D (for the 128x64)
// init done
display.display();
delay(200);
// Clear the buffer.
display.clearDisplay();
}

void loop() {
scale.set_scale(calibration_factor); //Adjust to this calibration factor

display.clearDisplay();
display.setTextSize(1.9);
display.setTextColor(WHITE);
display.setCursor(25,0);
display.println("Vacuum");

display.setTextSize(2.5);
display.setTextColor(WHITE);
display.setCursor(10,16);
//display.print(scale.get_units()*0.0000, 2);
display.print(scale.get_units()*0.135, 2);
display.println(" Psi");
display.println();
display.print(scale.get_units(), 2);
display.println(" £");
display.setTextColor(BLACK, WHITE); // 'inverted' text
display.display();

delay(10);

}

if anyone can help me with that i will appreciate it very much.

cheers

Hi,
If you want to read real psi from the sensor, you need to do some sort of calibration in Your code. I'm not familiar with HX711, so I can't point you exact functions. I would suggest You using a function to take "raw" readings from MD-PS002, and Serial.print those values. Then put the sensor in Your ?tank?.
Here are two alternatives (first is easier, second more accurate):

  1. Take two readings at min and max pressure that could be in your ?tank? At both pressure levels you should measure it with Your trusty analog meter and print arduino reading.
    You would end up with two points:
    (arduino reading, psi)
    Then implement map() function to map arduino reading extremes to psi value extremes. This function should calculate everything in Your pressure range. Example:

real_psi = map(reading, min_reading, max_reading, min_psi, max_psi)

  1. Take a few readings at different pressure levels in the ?tank?. At each pressure level you should measure it with Your trusty analog meter and print arduino reading. You would end up with table of points (example):
    psi | arduino reading
    5 | 1321
    10 | 2652
    15....

Then enter those points (x = arduino reading, y = psi) into some maths graphing software (I used geogebra) which can draw a "straight line that mostly matches all of those points". Then get a equation and embed it in Your code (if using integers do it carefully to balance precision and to avoid roll over).

BTW: Those sensors don't like attaching silicon hoses to them (I damaged seal in mine while doing so). I've also used MD-PS002, but rated for 700kPa. I was using ina333 instrumentation amp and analogReading sensor.