Arduino Forum

International => Français => Topic started by: maxpsi on Sep 24, 2016, 06:53 pm

Title: capteur de pression (MPX5700GP)
Post by: maxpsi on Sep 24, 2016, 06:53 pm
Bonjour à tous,

je dispose d'un capteur de pression freescale MPX5700GP (celui représenté sur la page 7 de la datasheet).
Je cherche lire la pression, par conséquent j'ai utilisé la fonction de transfert fournie sur la datasheet : Vout = VS*(0.0012858*P+0.04) ± Error

après des calculs très complexes on obtient : P= ((Vout/Vs)-0,04)/0.0012858 (je vais d'abord négliger l'erreur devant les autres termes)

avec : Vout : Tension de sortie, Vs = 5V et P la pression

Lorsque je fais les branchements sur mon arduino UNO, je trouve des valeurs anormales. Avez-vous une explication ?

Vous trouverez ci-joint le code que j'utilise ainsi que la datasheet du capteur.

Code: [Select]

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

void loop() {
  int sensorValue = analogRead(A0);
  float pression = ((((sensorValue*5/1023) / 5) - 0.04) / 0.0012858) ;
  Serial.println(pression);
}


datasheet MPX5700GP (http://www.farnell.com/datasheets/1740279.pdf?_ga=1.81545183.996339505.1474656757)

J'en profite pour vous demander si vous connaissez un capteur de pression hydrostatique (1-5 bars) compatible avec un arduino.


Je vous remercie par avance pour l'aide que vous m'apportez,


Maxpsi


Title: Re: capteur de pression (MPX5700GP)
Post by: Artouste on Sep 24, 2016, 07:56 pm
...

Lorsque je fais les branchements sur mon arduino UNO, je trouve des valeurs anormales. Avez-vous une explication ?
bonsoir
Ordre de grandeur des anormalités ?
tu a bien noté que que le Vout evolue entre 0.2 et 4.7V (pour 0/700 kPa en Gauge)
tu utilise quoi comme refernece de tension pour ta conversion A/D ? le "5V" d'alim arduino (mode standard)  ?

Title: Re: capteur de pression (MPX5700GP)
Post by: maxpsi on Sep 24, 2016, 10:31 pm
Bonsoir Artouste,

la valeur qui m'est retournée est -31.11

Concernant la valeur de Vout qui varie entre 0.2 et 4.7V, cela signifie donc que j'ai une relation du type : Vout=(4.5/700)*P(kPa)+0.2

Effectivement, mon capteur est branché aux pins ground, +5V et A0 de l'arduino.

Merci beaucoup pour ton aide,

Bonne soirée

Maxpsi
Title: Re: capteur de pression (MPX5700GP)
Post by: aligote on Sep 25, 2016, 01:03 pm
..... j'ai utilisé la fonction de transfert fournie sur la datasheet : Vout = VS*(0.0012858*P+0.04) ± Error

après des calculs très complexes on obtient : P= ((Vout/Vs)-0,04)/0.0012858 (je vais d'abord négliger l'erreur devant les autres termes)

avec : Vout : Tension de sortie, Vs = 5V et P la pression

..................

Bonjour,

Cela ressemble à un problème de typage de variable. Dans le calcul il n'y aurait pas de cohérence des variables:

  float pression = ((((sensorValue*5/1023) / 5) - 0.04) / 0.0012858)

sensorValue est un entier signé, le résultat attendu un float, il peut y avoir des arrondis sur les affectations dans le calcul qui suppriment les décimales lors des calculs intermédiares.

Essayer :
- vérifier par un affichage intermédiaire que la valeur de sensorValue est correcte.
- déclarer sensorValue de type float.

Serge .D
Title: Re: capteur de pression (MPX5700GP)
Post by: Artouste on Sep 25, 2016, 01:30 pm
Bonsoir Artouste,

la valeur qui m'est retournée est -31.11
bonjour
quelle valeur brute acquise par l'ADC le MPX à l'air ?
sur un 5700DP (equivalent là à un 5700G ) je fluctue entre  37/38
(http://www.cjoint.com/doc/16_09/FIzlzxx5cpP_mpx576.jpg)
Title: Re: capteur de pression (MPX5700GP)
Post by: maxpsi on Sep 25, 2016, 01:46 pm
Bonjour à tous,

merci pour votre réactivité,

la valeur qui m'est retournée lorsque je mets le capteur à l'air libre est 38 (0.185V équivalent, 0.197 V mesuré au voltmètre).
SensorValue augmente bien lorsque j'augmente la pression.

J'ai déclaré SensorValue de type float et le résultat "pression" retourné à l'air libre est de -2,22. Le résultat est toujours surprenant cependant je constate que cette valeur augmente et devient positive lorsque j'augmente la pression. Ceci est déjà une bonne avancée car avant ce n'était pas le cas...

Merci pour le temps que vous me consacré,

maxpsi
Title: Re: capteur de pression (MPX5700GP)
Post by: Artouste on Sep 25, 2016, 02:05 pm
Bonjour à tous,

merci pour votre réactivité,

la valeur qui m'est retournée lorsque je mets le capteur à l'air libre est 38 (0.185V équivalent, 0.197 V mesuré au voltmètre).
SensorValue augmente bien lorsque j'augmente la pression.
Donc ton probleme vient de TA fonction de transfert :smiley-mr-green:
Title: Re: capteur de pression (MPX5700GP)
Post by: maxpsi on Sep 25, 2016, 02:13 pm
J'ai évalué l'erreur, en considérant que la pression atmosphérique était de 100kPa, je trouve une erreur de -0.65. Par conséquent je ne peux la négliger (j'aurais du faire le calcul dès le début... erreur élémentaire de ma part...).

J'ai donc modifié mon code en prenant en compte l'erreur approximative et je trouve une valeur de pression cohérente (98,88 kPa). Il me faut donc estimer plus finement l'erreur réelle. Mais cela fonctionne maintenant.


Encore merci pour votre aide, vous m'avez tous les deux bien aidé

maxpsi
Title: Re: capteur de pression (MPX5700GP)
Post by: aligote on Sep 25, 2016, 02:17 pm

OK

Serge .D

Title: Re: capteur de pression (MPX5700GP)
Post by: maxpsi on Sep 25, 2016, 02:22 pm
Donc ton probleme vient de TA fonction de transfert :smiley-mr-green:
Effectivement, j'avais négligé un terme non négligeable...  :smiley-confuse:

Merci Artouste et Serge pour votre aide,

Bonne journée,  :)

maxpsi
Title: Re: capteur de pression (MPX5700GP)
Post by: Artouste on Sep 25, 2016, 02:25 pm
J'ai évalué l'erreur, en considérant que la pression atmosphérique était de 100kPa, je trouve une erreur de -0.65. Par conséquent je ne peux la négliger (j'aurais du faire le calcul dès le début... erreur élémentaire de ma part...).

J'ai donc modifié mon code en prenant en compte l'erreur approximative et je trouve une valeur de pression cohérente (98,88 kPa). Il me faut donc estimer plus finement l'erreur réelle. Mais cela fonctionne maintenant.


Encore merci pour votre aide, vous m'avez tous les deux bien aidé

maxpsi
bon,  ça c'est fait ! :smiley-mr-green:
maintenant si tu en disais plus sur ton "projet" , il serait surement plus simple de regarder/sourcer vers un "meilleur/plus adapté capteur  de P° "
Title: Re: capteur de pression (MPX5700GP)
Post by: maxpsi on Sep 25, 2016, 05:55 pm
En effet, je vais vous expliquer pourquoi j'utilise ce capteur... :)

Je souhaite réaliser un capteur de profondeur (utilisable en mer). Je n'ai pas trouvé de capteur de pression hydrostatique donc j'ai décidé de le fabriquer en utilisant un capteur de pression classique pour mesurer la pression dans une chambre d'air qui va se comprimer lorsque le capteur va descendre dans le fond (via la relation fondamentale de la statique des fluides je remonte à la profondeur)... c'est un système qui me semble faisable.



Title: Re: capteur de pression (MPX5700GP)
Post by: Artouste on Sep 25, 2016, 06:20 pm
En effet, je vais vous expliquer pourquoi j'utilise ce capteur... :)

Je souhaite réaliser un capteur de profondeur (utilisable en mer). Je n'ai pas trouvé de capteur de pression hydrostatique donc j'ai décidé de le fabriquer en utilisant un capteur de pression classique pour mesurer la pression dans une chambre d'air qui va se comprimer lorsque le capteur va descendre dans le fond (via la relation fondamentale de la statique des fluides je remonte à la profondeur)... c'est un système qui me semble faisable.




sur le principe c'est "faisable" , mais il y a une chose que je ne "comprend" pas :
tu veux enfermer ton capteur dans un volume d'air fermé (soumis à la pression) et remonter l'info analogique ou la pression est remontée par tubage ?
Title: Re: capteur de pression (MPX5700GP)
Post by: aligote on Sep 25, 2016, 06:24 pm
...............
Je souhaite réaliser un capteur de profondeur (utilisable en mer). Je n'ai pas trouvé de capteur de pression hydrostatique donc j'ai décidé de le fabriquer en utilisant un capteur de pression classique pour mesurer la pression dans une chambre d'air qui va se comprimer lorsque le capteur va descendre dans le fond ....
Intéressant pour naviguer dans les faibles profondeurs.... mais plus compliqué à utiliser qu'un sondeur à ultrasons.

10 m => environ 1 bar ... puis gare à la chambre à air et à la longueur des connexions !

(Peut-être un projet de plateforme pétrolière perso ?  :)  )

Avec une petite erreur due à l'élasticité du caoutchouc.

Serge .D
Title: Re: capteur de pression (MPX5700GP)
Post by: maxpsi on Sep 25, 2016, 06:40 pm
Je vais enfermer mon arduino et le capteur dans un caisson étanche. Le capteur sera relié au volume d'air via un tube (qui va donc passer à travers le caisson étanche).

Ce système ne sera pas utilisé pour de la navigation, il n'a d'ailleurs pas de vocation opérationnelle, jute un projet "fun". :)

J'espère que vous comprenez mieux mes explications.

maxpsi
Title: Re: capteur de pression (MPX5700GP)
Post by: Artouste on Sep 25, 2016, 06:48 pm
Je vais enfermer mon arduino et le capteur dans un caisson étanche. Le capteur sera relié au volume d'air via un tube (qui va donc passer à travers le caisson étanche).

Ce système ne sera pas utilisé pour de la navigation, il n'a d'ailleurs pas de vocation opérationnelle, jute un projet "fun". :)

J'espère que vous comprenez mieux mes explications.

maxpsi
ok
donc tubage
perso je serais plus parti sur un capteur absolu enfermé , ça ne necessite que du cable , le tubage c'est toujours une source de probleme.
quelle profondeur max tu souhaite ?
Title: Re: capteur de pression (MPX5700GP)
Post by: maxpsi on Sep 25, 2016, 06:58 pm
oui, il faudra faire particulièrement attention aux raccords...
Cependant, je ne comprends pas très bien la différence entre les capteurs de pression comme le miens (type jauge) et ceux dont tu me parles. Comment je pourrai échapper au tubage ?

J'aimerai avoir une profondeur max de 30-40 m soit 4 à 5b de pression absolue.
Title: Re: capteur de pression (MPX5700GP)
Post by: Artouste on Sep 25, 2016, 07:14 pm
oui, il faudra faire particulièrement attention aux raccords...
Cependant, je ne comprends pas très bien la différence entre les capteurs de pression comme le miens (type jauge) et ceux dont tu me parles. Comment je pourrai échapper au tubage ?

J'aimerai avoir une profondeur max de 30-40 m soit 4 à 5b de pression absolue.
la différence entre un 5700Gauge (ou DP) et un 5700Absolu est "simplement"
qu'un des coté est scellé (pression usine)
regarde le DS figure 3

exemple d'un 5999D transformé en "A" , je ne sais plus pourquoi d'ailleurs ! (http://www.cjoint.com/doc/16_09/FIzrw1PCCVP_mpx9991.jpg)
Title: Re: capteur de pression (MPX5700GP)
Post by: maxpsi on Sep 25, 2016, 09:52 pm
merci Artoutse pour cette explication.
Je garde ton conseil en tête !

A bientôt :)

maxpsi
Title: Re: capteur de pression (MPX5700GP)
Post by: Nadonx on Apr 25, 2017, 10:36 pm
Bon, c'est un peu tard et je ne sais pas si ton projet est terminé, mais si jamais j'en connais un de capteur de pression pour lequel il y a aussi toute une docu sur le code pour le brancer à ton arduino, mais celui-là de capteur, le AMS 5812 n'est pas étanche. Mais peut-être que le code peut t'aider.

http://www.analog-micro.com/_pages/sens/ams5812/ams5812_an01.pdf