Pressure Transducer

Hello. In the other day i buyed a transducter for a project, the MPX10DP, however when i connect it to the arduino i notice that my values in analogRead are very diferent for the same situation. For examle for 1 cm of water i notice that the values go from 16 mv to 19 mv wich makes that the pressure calculated is very diferent. Why does this happen? I thougth on buying the INA125 (opamp) for amplifying the signal but I dont know if I am thinking rigth.

This is the same question as your previous question: https://forum.arduino.cc/index.php?topic=727344.0.
You did not reply to what we wrote, so we don't know if you understand what kind of pressure sensor it is.

There are temperature-compensated ratiometric pressure sensors with internal amplifier and analog output that go very well with an Arduino.
Your pressure sensor outputs a few millivolts.

Manufacturer's page of the MPX10DP: MPX10DP Product Information|NXP, with datasheet.

The pressure of 1cm of water is very little, you can not measure that with that sensor connected to an Arduino board.

I'm sorry for not awnsering my previous post it was my fault.

I understandt that 1cm is not the best heigth for measuring this things, in this case do you think thhat with 1 meter (1kPa) is best for this resoltuion? Also the INA125 may help in here? My confusion with the amplifier is that it will change the values that i get from analogRead function...

I'm very sorry, i'm stressed because i cant finish this project and cant spend more money with this and as u can see i am having a lot of trouble (it's my first project and can't chaange it because it is for school)

Is 1 meter of water 1 kPa ? I think it is 10 kPa.
Those sensors are probably not waterproof.

The INA125 is perfect. That is a instrumentation amplifier and that is what the sensor needs. I think you need a higher voltage than 5V for the INA125.

The sensor needs 3.0V, but 3.3V and 5V are also okay. The INA125 can supply a precise 5V.
The output span of the INA125 could be between 4V and 5V. 4V/35mV = 114. You can start with a gain of about 114.

Is your Arduino powered with the USB cable ? To work with the INA125, the Arduino should run at 5.0V. Can you power the Arduino with a power supply to the barrel jack of the Arduino Uno ?

It is possible to do a quick test. Use the Arduino 5V pin to power the sensor, connect both outputs to two analog inputs. Use the average of many samples to get a resolution beyond the 10-bit. That should make it possible to distinguish about 10 to 20 different pressure levels. It will cost time and the result is disappointing.

Yes is 10 kPa sorry xD.

I understood what u said perfectly thank u!!
However I only have one more question, for the arduino reading 35mV is diferrent from reading 4 V for exemple, so I will have different values for the pressure that is capture, how will I work with this. I know it’s a stupid question but I’m very confused by it.

The INA125 sets a certain gain. Use that gain in the sketch together with the sensitivity of the sensor. There is a offset, it is best to measure the offset with the Arduino after the circuit is build and the sensor is connected.

I'm not good with OpAmps or the INA125.
Perhaps what I wrote before was wrong. Perhaps it can be powered with 5V, maybe that makes it more accurate as well.
This schematic is the easiest that I can find: Weight Sensor (Load Cell)0-500g.

Thank you very much!
I'll try what you saied and if I continue with any kind of problems I post again in here.

Hi I maked the circuit and then use the code below to get some results however dont know why I cant see any change in the pressure (i blow into a tube and dosent change anything).

void setup() {
  Serial.begin(9600);
}

void loop() {
  
  float Vout,Pressure,h;
  int value;
  //
  value=analogRead(A0);

  
  Vout=value*0.004875; //Converting analog to V
  
  //Gain of 1054 and equivelint resistor of 40 Ohm
  //Here I use 0.033 V of offset because the Vin is 5V
  Pressure=((Vout/1054)-0.033)/0.0035; //Using MPX10DP Datasheet
  
  Serial.print(Vout);
  Serial.print("/n");
  Serial.print(Pressure);
  delay(300);
}

the circuit is exactly the same as in this page Weight Sensor (Load Cell)0-500g. Can smebody help me?

Hi I maked this circuit to calibrate the MPX10DP with water coluns and then use the code below to get some results for the pressure however I dont know why I cant see any change in it (I blow into the tube and dosent change anything).

void setup() {
  Serial.begin(9600);
}

void loop() {
  
  float Vout,Pressure,h;
  int value;
  //
  value=analogRead(A0);

  
  Vout=value*0.004875; //Converting analog to V
  
  //Gain of 1054 and equivelint resistor of 40 Ohm
  //Here I use 0.033 V of offset because the Vin is 5V
  Pressure=((Vout/1054)-0.033)/0.0035; //Using MPX10DP Datasheet
  
  Serial.print(Vout);
  Serial.print("/n");
  Serial.print(Pressure);
  delay(300);
}

the circuit is exactly the same as in this page Weight Sensor (Load Cell)0-500g. The only change is that isntead of aplying weigth I simply blow into a tube to simulate more pressure. Can somebody help me?

You did see a change of 16 mV to 19 mV, that should be amplified by the INA125.
Can you show the return value of analogRead() ?

Serial.print( "raw ADC value = ");
Serial.println( value);

I don't know much about the INA125, but the sensor has a offset and the INA125 has a offset. It is possible that the output of the INA125 is stuck at a value that is too high or too low. Then you have to lower the gain.

Also asked here: https://forum.arduino.cc/index.php?topic=728052.msg4902249#msg4902249

Do you have the sensor ground connected to the Arduino ground?

Hi,
Have you googled.. MPX10DP arduino

Many, many hits.

Tom... :slight_smile:

@psycleri, do not cross-post. Threads merged.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.