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 :
Soit :
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_s\) est la volume de la seringue ;
\(V_0\) est le volume additionnel contenu dans le tube et le capteur (ici 4 mL).

