Activer le mode zen
Ressource au format PDF

Statique des fluides - Application pratique à l'aide d'une carte Arduino programmée en Python

22/06/2020

Mauger Cyril

LMFA, INSA Lyon

Delphine Chareyron

ENS Lyon / DGESCO

Résumé

Nous proposons ici une expérience pour retrouver les lois de la statique des fluides en utilisant un microcontrôleur piloté par un programme en Python.


1. Utilisation d’un Arduino Uno avec Python3 : Comment réaliser un capteur de niveau d’eau

1.1 Introduction – présentation de l’expérience

Les capteurs de niveau de liquide sont couramment utilisés dans de nombreux domaines (assainissement de l’eau, surveillance des cours d’eau,  industrie chimique…) pour assurer le bon fonctionnement d’un process ou pour sécuriser une installation. Leur technologie (ultra-son, imagerie...) diffère selon l’application visée et les besoins.

Nous nous proposons ici  de réaliser un capteur de niveau d’eau basé sur la mesure de pression. Ceci nous permettre de mettre en application la relation fondamentale de la statique des fluides vue dans l'artcicle «  Statique des fluides - Lois et exemples d'applications ».

Pour réaliser le montage, nous aurons besoin de :

  • 1 Carte Arduino Uno ;
  • 1 Capteur de pression différentielle MPX5010DP ;
  • 3 Straps flexibles M-F de longueur 15 cm (connectiques entre le capteur de pression et la carte Arduino) ;
  • Un tuyau de diamètre intérieur égal à 4 mm et d'une longueur supérieure à 2 m ;
  • Un contenant (idéalement d'une hauteur de 1 m), type éprouvette ou tuyau transparent bouché.

Un schéma du montage est présenté ci-dessous, figure 1.

L’expérience consiste à ajouter dans le contenant (dont le diamètre D interne est connu) un volume de liquide V. De cette manière, nous pouvons connaître la hauteur réelle de liquide hthéo introduite dans le contenant par la relation : hthéo=4VπD2 et la comparer à la hauteur mesurée par le capteur. Cette manipulation peut être répétée plusieurs fois dans l’expérience.

Dans l’expérience présentée ici, la manipulation sera répétée 5 fois.

1.2 Modélisation du problème

Le capteur de pression différentielle permet de mesurer simultanément deux pressions : la pression au fond de l’éprouvette p1 et la pression p3.

       

Écrivons la relation qui permet de relier p1 à p3, et la hauteur h d’eau.

L’équation fondamentale de la statique des fluides donne : p1+ρeaugz1=p2+ρeaugz2

        et

        p2+ρairgz2=p3+ρairgz3

En sommant les deux relations nous obtenons :

        p1-p3=ρeaug(z2-z1)+ρairg(z3-z2)

En comparant, la masse volumique de l’air ρair ≈  1,23 kg.m-3 et celle de l’eau ρeau ≈ 997 kg.m-3, il semble évident que le poids de la colonne d’air sera négligeable devant le poids de la colonne d’eau.

Ceci implique aussi que la position du capteur a très peu d’influence sur notre mesure.

Finalement, notre dernière équation devient :

        h=p1-p3ρeaug               avec         h=z2-z1

Nous avons trouvé la relation qui nous donnera le niveau d’eau dans notre éprouvette en fonction de la mesure différentielle de pression de notre capteur.


1.3 Codage en Python3 et acquisition du signal

Dans un premier temps, on importe les bibliothèques Python nécessaires à la communication avec la carte Arduino, au traitement des données et à l'affichage des graphiques, figure 3.

Essayons de communiquer avec la carte :

À partir de ce stade, nous déclarons les variables physiques qui seront nécessaires à la modélisation du problème, figure 5.

On déclare ensuite les paramètres qui seront utiles pour le script :

Nous allons maintenant passer à l’étape de l’acquisition des données et du calcul du niveau de liquide, figure 7.

Les mesures sont stockées dans la variable « Data ». Nous allons maintenant tracer les résultats et enregistrer le graphique obtenu. Nous allons tracer un graphique avec deux axes y, un pour la pression différentielle, un autre pour la hauteur de liquide, figure 8.

Le graphique, figure 9, montre l’évolution du niveau de liquide dans le contenant en fonction du volume introduit au cours de 5 manipulations (ajout de liquide). Le capteur donne une mesure assez proche de la hauteur attendue (tracé en pointillés).

Dans le tracé, nous avons choisi de faire coïncider les 2 axes verticaux (variation de pression et hauteur d'eau) pour mettre en évidence plus facilement la validation des mesures par le modèle. On peut ainsi comparer les hauteurs déduites expérimentalement (ΔP = ρgh) aux hauteurs théoriques.

Dans ce graphique les incertitudes de mesures n'apparaissent pas mais elles existent, sur les points obtenus expérimentalement (incertitudes sur la position de la mesure, précision du capteur...) et sur la prédiction théorique (mesure de la quantité d'eau ajoutée, présence d'un ménisque...)

Télécharger le programme « Mesure-statique-fluide.py »

Pour citer cet article :

Statique des fluides - Application pratique à l'aide d'une carte Arduino programmée en Python, Cyril Mauger, juin 2020. CultureSciences Physique - ISSN 2554-876X, https://culturesciencesphysique.ens-lyon.fr/ressource/statique-fluides-Arduino.xml

Pour citer cet article :

Statique des fluides - Application pratique à l'aide d'une carte Arduino programmée en Python, Cyril Mauger, juin 2020. CultureSciences Physique - ISSN 2554-876X, https://culturesciencesphysique.ens-lyon.fr/ressource/statique-fluides-Arduino.xml

Ressource au format PDF