Exploiter un capteur de pression avec 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.

Capteur de pression MPX4250AP

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.

Câblage d'un capteur de pression MPX4250APInformations[1]

FondamentalCaracté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\)

Courbe de transfert Tension/Pression du composant MPX4250APInformations[2]

MéthodeObtenir 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.

1
float tension, P;//Déclaration des variables tension et pression
2
3
void setup() {
4
  // put your setup code here, to run once:
5
  Serial.begin(9600);//Initialisation de la communication série
6
}
7
8
void loop() {
9
  // put your main code here, to run repeatedly:
10
  tension = analogRead(A0) * 5.0 / 1023.0;//Lecture de la tension et conversion en V
11
  P = tension / 0.002 + 100.0; //Obtention de la pression en hPa
12
  //Affichage de la pression sur le moniteur série
13
  Serial.print(P, 0);
14
  Serial.println(" hPa");
15
  delay(1000);//Actualisation de la mesure toutes les secondes
16
}

ExempleExemple 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_{out} \right)\).

Seringue pour vérification de la loi de Boyle-Mariotte

Le fichier en téléchargement ci-dessous reprend un ensemble de mesures.