Loi de Mariotte avec le capteur Adafruit MPRLS
Capteur MPLRS0025AP
Le circuit MPLRS0025AP est un capteur piézorésistif de pression absolue (0 à 1700 hPa). La mesure de la pression est directement donnée sous forme numérique (24 bit) via le port I2C.

Capteur pression absolue Educaduino LAB
La documentation technique donne une précision de \(\pm1,5\%\) de la plage totale de variation.
A noter que ce module fonctionne aussi bien en \(3,3~\rm V\) ou \(5~\rm V\).
Mesure simple de la pression absolue
Le programme ci-dessous affiche périodiquement une mesure de la pression absolue en hPa. Une correction du décalage de la pression a été faite à partir d’un capteur atmosphérique de haute précision (ici BMP280).
Il faut installer préalablement la bibliothèque Adafruit MPRLS Library
dans Arduino IDE.
/*
* Mesure d'une pression absolue
* Capteur Adafruit MPRLS (0 à 1700 hPa) I2C
* David THERINCOURT - 2025
*/
#include "Adafruit_MPRLS.h"
Adafruit_MPRLS mpr = Adafruit_MPRLS(-1, -1); // Déclaration capteur MPRLS
float Patm_mpr = 998; // Pression atmosphérique MPRLS
float Patm_ref = 991; // Pression atmosphérique de référence
float correction = Patm_ref - Patm_mpr; // Correction à appliquer
float Pmpr; // Pression MPRLS
void setup() {
Serial.begin(9600); // Initialisation port série
if (! mpr.begin()) { // Initialisation MPRLS
Serial.println("MPRLS non trouvé !"); // ...
while (1) { // ...
delay(10); // ...
}
}
Serial.println("MRPLS trouvé !"); // Affichage
Serial.print("Correction de "); // ...
Serial.print(correction); // ...
Serial.println(" hPa"); // ...
}
void loop() {
Pmpr = mpr.readPressure() + correction; // Mesure de la pression
Serial.print(Pmpr); // Affichage
Serial.println(" hPa"); // ...
delay(1000); // Temporisation
}

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.
/*
* Vérification de la loi de Mariotte
* Capteur Adafruit MPRLS (0 à 1700 hPa) I2C
* David THERINCOURT - 2025
*/
#include "Adafruit_MPRLS.h"
Adafruit_MPRLS mpr = Adafruit_MPRLS(-1, -1); // Déclaration capteur MPRLS
float Patm_mpr = 998; // Pression atmosphérique MPRLS
float Patm_ref = 991; // Pression atmosphérique référence
float correction = Patm_ref - Patm_mpr; // Correction à appliquer
float volume;
float pression;
void setup() {
Serial.begin(9600); // Initialisation port série
if (! mpr.begin()) { // Initialisation MPRLS
Serial.println("MPRLS non trouvé !"); // ...
while (1) { // ...
delay(10); // ...
}
}
Serial.println("Capteur MPRLS trouvé."); // Affichage
Serial.println("---- CSV ----"); // ...
Serial.println("Vs ; P"); // ...
Serial.println("mL ; hPa"); // ...
}
void loop() {
while (Serial.available()==0){} // Attente de la saisie
volume = Serial.parseFloat(); // Extraction de la valeur du volume
pression = mpr.readPressure(); // Mesure de la pression
Serial.print(volume,0); // Affichage
Serial.print(" ; "); // ...
Serial.println(pression,0); // ...
}
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 1,5 mL).

