Loi de Mariotte avec capteur Educaduino Lab

Capteur MPXHZ6400A

Le MPXHZ6400A est un capteur piézorésistif de pression absolue (200 hPa à 4000 hPa).

Capteur pression absolue Educaduino LAB

Schéma électrique (source : Freescale Semiconductor, Inc.)

L’électronique interne de ce module modifie les caractéristiques de la tension de sortie du capteur MPXHZ6400A comme le montre le tableau suivant :

Pression

Tension de sortie

200 hPa

0 V

4000 hPa

5,0 V (VCC)

La documentation technique donne une précision du capteur de \(\pm1,5\%\) de la plage totale de variation. Cette précision tient compte de la variation de la pression par rapport à la valeur nominale, de la linéarité, de l’hystérésis de pression, de l’hystérésis thermique et de la déviation de la sortie par rapport à la température.

Avertissement

Pour une meilleure précision, il convient d’étalonner le capteur à partir d’une mesure précise de la pression atmosphérique.

Calcul de la pression

La mesure de pression (en hPa) est donnée par la relation suivante :

\[\boxed{P = \dfrac{P_{max}-P_{min}}{V_{CC}} \times V_{out} + P_{min}}\]

Soit :

\[\boxed{P = \dfrac{3800}{V_{CC}} \times V_{out}+ 200} \qquad\text{avec}\qquad V_{CC} = 5,0~{\rm V}\]

Avertissement

Le module n’intègre pas de régulateur de tension. En conséquence, une mesure au voltmètre de la tension \(V_{CC}\), sur la broche 5V ou IOREF de l’Arduino, est vivement conseillée !

Mesure simple de la pression absolue

Le programme ci-dessous affiche périodiquement une mesure de la pression absolue en hPa ainsi de la tension de sortie du capteur (broche A9).

 1/*
 2 * Mesure d'une pression absolue
 3 * Capteur pression absolue Educaduino Lab (20 kPa à 400 kPa)
 4 * Réference : MPXHZ6400A
 5 * David THERINCOURT - 2025
 6*/
 7
 8float VCC = 5.00;                         // Tension d'alimentation de l'Arduino
 9float tension;                            // Tension du capteur
10float pression;                           // Pression calculée
11
12void setup() {
13   Serial.begin(9600);                    // Initialisation du port série
14}
15
16void loop() {
17   tension = analogRead(A9)*VCC/1023.0 ;  // Lecture de la tension sur A9 en volt
18   pression = 3800/VCC*tension + 200 ;    // Calcul de la pression en hPa
19   Serial.print(tension);                 // Début affichage
20   Serial.print("V \t");                  // caractère "\t" pour une tabulation
21   Serial.print(pression,0);              // ...
22   Serial.println(" hPa");                // ...
23   delay(1000);                           // Temporisation
24}

Résultats dans le moniteur série

Vérification de la loi de Mariotte

Le programme ci-dessous saisie manuellement au clavier la valeur du volume \(V\) puis mesure la pression absolue correspondante. Les résultats sont affichés au format CSV dans le moniteur série. L’exportation vers une autre application peut se faire par un copier-coller de ces données CSV.

 1/* Mesure d'une pression absolue - Loi de Mariotte
 2* Capteur pression absolue Educaduino Lab (20 kPa à 400 kPa)
 3* Réference : MPXHZ6400A
 4* David THERINCOURT - 2025
 5*/
 6
 7float VCC = 5.00;                         // Tension d'alimentation
 8
 9void setup() {
10   Serial.begin(9600);                   // Initialisation du port série
11   Serial.println("Saisir à chaque fois le volume au clavier.");
12   Serial.println("---- CSV ----");
13   Serial.println("V ; P");
14   Serial.println("mL ; hPa");
15}
16
17void loop() {
18   while (Serial.available()==0){}       // Attente d'un message (Cocher "Pas de fin de ligne")
19   float V = Serial.parseFloat();        // Conversion en flottant
20   float U = analogRead(A9)*VCC/1023.0 ; // Lecture de la tension sur A9 en volt
21   float P = 3800/VCC*U + 200 ;          // Calcul de la pression en hPa
22   Serial.print(V,0);                    // Affichage
23   Serial.print(" ; ");                  // ...
24   Serial.println(P,0);                  // ...
25}

Avertissement

Pour commencer une nouvelle série de mesure, il faut relancer le programme en appuyant sur le bouton RESET du microcontrôleur.

Résultats dans le moniteur série

Résultats

Le volume final est donné par la relation :

\[V = V_s + V_0\]
  • \(V_s\) est la volume de la seringue ;

  • \(V_0\) est le volume additionnel contenu dans le tube et le capteur (ici 4 mL).