MPX5010DP

Development & General Chat for the superb openxvario project.

Moderator: rainer

Post Reply
Yogilours
Posts: 22
Joined: Tue Nov 21, 2017 6:49 pm
Country: -

MPX5010DP

Post by Yogilours »

Hello,

A friend of mine made some time ago a speed sensor with a MPX5010DP. It's an analog sensor like the MPXV7002DP but it can go faster and it's cheaper than the 4525DO-DS5AI001DP.

Do you think it could be integrated ? I have the link to the datasheet https://www.nxp.com/docs/en/data-sheet/MPX5010.pdf and I can ask the data my friend gatherede if it can help.

It would be the last piece of ou jet telemtry project : GPS alti/variometer speedometer and also a monitoring for the landing gear pressure with the MPX5700dp.

thank you :)

Guillaume

mstrens
Posts: 1435
Joined: Fri Dec 27, 2013 7:49 pm
Country: -

Re: MPX5010DP

Post by mstrens »

I think you can use it (as any analog sensor).
Just take care that:
- you this device seems to provide a voltage of 0.2 volt (instead of Vcc/2) when there is no differential pressure.
So, no need to add 2 resistors going to a pin of ads1115. Just put the pin to Gnd.

- the sensitivity is different. So you have to calculate one coefficient used to convert ADC reading into pressure.
In file oXs_ADS1115.cpp you have following lines:
// calculate airspeed based on pressure, altitude and temperature
// airspeed (m/sec) = sqr(2 * differential_pressure_in_Pa / air_mass_kg_per_m3)
// air_mass_kg_per_m3 = pressure_in_pa / (287.05 * (Temp celcius + 273.15))
// and differantial_pressure_Pa = ((smoothDifPressureAdc ) * 2048 / 32768) ; // with 7002, 1 mvolt = 1 pa and ads1115 ADC gives 32768 when volt = 2048 mvolt; so 1 step ADC = 2048 / 32768
//2048 is used because we supposed that ads gain is set on 2048 ; MPXV7002 provides 1 mvolt per pa wit 5 volt Vcc; it is ratiometric so there should be some Vcc correction
// so airspeed m/sec =sqr( 2 * 287.05 * 2048 / 32768 * smoothDifPressureAdc * (temperature Celsius + 273.15) / pressure_in_pa )
// rawAirSpeed cm/sec = 5,99 * 100 * sqrt( (float) abs(smoothDifPressureAdc) * temperature4525 / actualPressure) ); // in cm/sec ; actual pressure must be in Pa (so 101325 about at sea level
// = 32.32 * sqrt( (float) abs(smoothDifPressureAdc) ); // in cm/sec ; if pressure is standard = 101325 and temp = 15 C°)
// = 10256 * sqrt( (float) abs(smoothDifPressureAdc) / actualPressure) ); // in cm/sec ; temp is supposed to be 20 C°, pressure is in Pa
#ifdef AIRSPEED_AT_SEA_LEVEL_AND_15C
ads_smoothAirSpeed = 32.32 * sqrt( (float) ( abs(ads_smoothDifPressureAdc) ) ); // indicated airspeed is calculated at 15 Celsius and 101325 pascal
#else
ads_smoothAirSpeed = 10256.0 * sqrt( (float) ( abs(ads_smoothDifPressureAdc) / (float) actualPressure) ); // in cm/sec ; actual pressure must be in pa (so 101325 about at sea level)
#endif

Based on the sensitivity of your sensor, you have to recalculate and modify the values 32.32 and 10256.0.
I hope it is clear enough. Otherwise I can calculate the new values to be used.
Yogilours
Posts: 22
Joined: Tue Nov 21, 2017 6:49 pm
Country: -

Re: MPX5010DP

Post by Yogilours »

Hello,

Thanks ofr the fast answer. I followed tour calculation to understand. So if I'm not wrong (hem... not sure...) :

My sensor has a sensitivity of 1 mV/mmH2O <-> 1mV/9.80665Pa <-> 0.1019mV/Pa. If I take a full range at 4096mV I will have :

m/sec =sqrt( 2 * 287.05 * 4096 / (0.1019*32768) * smoothDifPressureAdc * (temperature Celsius + 273.15) / pressure_in_pa )

that gives 141.58 and 45457.91 instead of 32.32 and 10256.


By the way I think some "t" are missing in your calculation:
// airspeed (m/sec) = sqrt(2 * differential_pressure_in_Pa / air_mass_kg_per_m3)
// so airspeed m/sec =sqrt( 2 * 287.05 * 2048 / 32768 * smoothDifPressureAdc * (temperature Celsius + 273.15) / pressure_in_pa )

Once again thank you !

Guillaume

EDIT


My mistake after test with my car and recalculating... It should be more 67.34 and 21607.48 with sensitivitu 0.45 and not 0.1019...

I go back on the road.

Guillaume

REEDIT

All seems the air speed seems good compared to the gps one. Now I have to validate airborn and if possible withoout wind to compare GPS/air speed

Guillaume

Post Reply

Return to “OpenXVario - an open source vario supported by the open source firmwares!!”