” Principe fondamental de la statique des fluides ”
. Objectif
L’objectif de cette activité est de déterminé la profondeur d’immersion dans une colonne d’eau d’un tuyau relié à un capteur de pression MPX4250AP en appliquant le principe fondamental de la statique des fluides au montage suivant :
. Énoncé du principe fondamental de la statique des fluides
La statique des fluides constitue l’étude des fluides au repos.
Les fluides se déforment sous l’effet de forces très faibles, un fluide n’a pas de forme propre.
On distingue les liquides et les gaz :
– Le liquide prend la forme du récipient qui le contient, mais il est incompressible (ρ varie peu avec P et T).
– Le gaz occupe tout le volume mis à sa disposition et il est compressible (ρ varie beaucoup avec P et T)
La pression est la même en tout point d’un même plan horizontal d’un fluide homogène au repos.
La différence de pression (en Pa) entre deux points A et B (Cf. schéma ci-dessous) d’un fluide homogène au repos est égale à :
. Descriptif de l’activité
Après avoir positionné le tuyau au niveau du point A, constituant l’origine du repère (ZA=0), et mesuré la pression PA de ce point, on déplacera l’extrémité du tuyau (Point B) dans la colonne d’eau. Le microcontrôleur mesurera en continu la pression du point B et calculera la distance (en m) entre les 2 points :
Remarque :
La sensibilité du capteur de pression MPX4250AP est de 20 mv/kPa.
La résolution par défaut du convertisseur analogique/numérique de l’Arduino étant de l’ordre de 5 mV, il est possible de mesurer des différences de pression de 0,25 kPa, soit une différence de profondeur d’immersion (dz) d’environ 0,025 m (2,5 cm).
La précision de la mesure de Δz (ZB – ZA) sera donc de ± 2,5 cm.
. Le programme
Voici le code de l’activité :
Déroulement du programme :
– 1. Déclaration des constantes et variables :
. const int PinSensor = 0 (broche du capteur de pression)
. const int PinButton = 12 (broche du bouton poussoir)
. int ValSensor = 0 (variable nombre entier pour stocker la valeur de la broche du capteur)
. float tension = 0.0 (variable nombre décimal pour stocker le résultat du calcul de la tension de la broche du capteur)
. float Pression = 0.0 (variable nombre décimal pour stocker le résultat du calcul de la pression)
. float Pref = 0.0 (variable nombre décimal pour stocker la valeur de la pression du point de référence)
. float Dz=0.0 (variable nombre décimal pour stocker la valeur de la profondeur en cm)
. float OldDz = 0.0 (variable nombre décimal pour stocker l’ancienne valeur de la profondeur en cm)
. int ValButton = 0 (variable nombre entier pour stocker la valeur de la broche du bouton poussoir)
. int OldValButton = 0 (variable nombre entier pour stocker la valeur précédente de la broche du bouton poussoir)
. int State = 0 (variable nombre entier correspondant à l’action à effectuer)
. int OldState = 0 (variable nombre entier correspondant à l’action effectuée précédemment)
. boolean BtnAppui = false (variable booléenne indiquant un appui sur le bouton poussoir)
– 2. Initialisation des entrées et sorties :
. Initialisation de la liaison série à un débit de 9600 bauds
. Initialisation de la broche du bouton poussoir en entrée
. Mesure de la pression au point de référence (ZA=0)
– 3. Fonction principale en boucle
Résultats dans le moniteur série :
Pour la première mesure, la profondeur réelle par rapport à l’origine du repère était de 12 cm. Et pour la deuxième, elle était de 30 cm.
Les mesures ne sont donc pas très précises mais l’ordre de grandeur est respecté.