Exploiter un capteur de pression avec un microcontrôleur
Texte légal : Points du programme concernés
1ère Spécialité physique-chimie
Tester la loi de Mariotte, par exemple en utilisant un microcontrôleur.
Le capteur de pression MPX4250AP
De nombreux types de capteurs peuvent à priori être utilisés avec une carte Arduino sur une entrée analogique.
Outre la gamme de pressions mesurables, un paramètre essentiel est la sensibilité du capteur \(\dfrac{\Delta V}{\Delta P}\) souvent exprimée en \(mV/kPa\). La résolution du convertisseur analogique/numérique de l'Arduino est de l'ordre de \(5\ mV\), or bon nombre de capteur ont une sensibilité inférieure à \(0{,}5\ mV/kPa\) s'ils n'intègrent pas un circuit amplificateur.
La capteur MPX4250AP a quant à lui une sensibilité \(\dfrac{\Delta V}{\Delta P}=20\ mV / kPa\), ce qui le rend utilisable avec une carte Arduino.
Seules trois bornes sont utilisées pour le connecter à une carte Arduino (de g. à d. si orienté comme sur le schéma) :
VCC : +5 V
GND : masse
Vout : signal de sortie sur une entrée analogique de la carte.
Fondamental : Caractéristiques et calcul de la pression
La fiche technique [pdf] complète du composant fournit les caractéristiques complètes du module. On donne ci-contre la courbe de transfert reliant pression absolue P en kPa à la tension de sortie Vout en V.
On a \(V_{out}=5{,}0\times \left( P \times 0{,}004-0{,}04\right)\).
Donc on obtient la pression à partir de la mesure de la tension de sortie par :
\(P_{kPa}=\dfrac{V_{out}}{0{,}020}+10\)
\(P_{hPa}=\dfrac{V_{out}}{0{,}0020}+100\)
Méthode : Obtenir la valeur de la pression et l'afficher sur le moniteur série
Pour accéder rapidement à la valeur de la pression, on peut se contenter d'un affichage sur le moniteur série.
Le programme ci-dessous fonctionne en connectant la borne Vout du capteur à l'entrée A0 de la carte Arduino.
float tension, P;//Déclaration des variables tension et pression
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);//Initialisation de la communication série
}
void loop() {
// put your main code here, to run repeatedly:
tension = analogRead(A0) * 5.0 / 1023.0;//Lecture de la tension et conversion en V
P = tension / 0.002 + 100.0; //Obtention de la pression en hPa
//Affichage de la pression sur le moniteur série
Serial.print(P, 0);
Serial.println(" hPa");
delay(1000);//Actualisation de la mesure toutes les secondes
}
Exemple : Exemple d'activité élève et d'application
Il est possible de travailler avec les élèves la notion de courbe de transfert en leur communiquant l'extrait de la fiche technique correspondant.
Ce montage permet de vérifier la loi de Boyle-Mariotte si on dispose de seringues. Les résultats sont nettement améliorés si on estime le plus précisément possible le volume résiduel (extrémité de la seringue et tuyau.
Les mesures peuvent être exploitées sur tableur afin de trouver la relation \(P=f \left(V \right)\).
Le fichier en téléchargement ci-dessous reprend un ensemble de mesures.