Outils pour utilisateurs

Outils du site


arduino:plaque_grove_du_lycee_valin:comment_utiliser_un_capteur_de_pression_grove

Comment utiliser un capteur de pression Grove ?


Mesurer une pression sans étalonnage du capteur

Nous utiliserons un module Grove basé sur un capteur de pression MPX5700AP donnant la tension en fonction de la pression mesurée.

  • Plage de mesure: 0 à 700 kPa
  • Sensibilité: 6,4 mV/kPa

Le montage

  • Le capteur de pression est branché sur la broche analogique A0.
  • L'écran LCD (facultatif) est branché sur une broche I2C.




Obtention de la pression

Sur la notice du constructeur, on trouve la relation entre la tension mesurée et la pression en kPa :

Vsortie = Vs x (0,0012858 x P + 0,04) avec Vs = 5,0 V.

En isolant P : P = Vsortie / 0,006429 - 31,1 avec P en kPa.

soit P = Vsortie / 0,0006429 - 311 avec P en hPa.



Le code avec un affichage sur le moniteur série

Cliquez pour afficher le code

Cliquez pour masquer le code

float tension, pression;   // Déclaration des variables tension et pression
 
void setup() {
  Serial.begin(9600);   // Initialisation de la communication série
}
 
void loop() {
  tension = analogRead(A0) * 5.0 / 1023.0;   // Lecture de la tension et conversion en V
  pression = tension / 0.0006429 - 311;   // Calcul de la pression en hPa
 
  // Affichage de la pression sur le moniteur série
  Serial.print(pression,0);
  Serial.println(" hPa");
  delay(1000);
}


Le code avec un affichage sur l'écran LCD

Cliquez pour afficher le code

Cliquez pour masquer le code

#include <Wire.h>     // inclure la bibliothèque permettant la communication par le protocole I2C
#include "rgb_lcd.h"  // inclure la bibliothèque pour l'écran LCD
 
rgb_lcd lcd;   // création d'un objet lcd
 
float tension, pression;   // Déclaration des variables tension et pression
 
void setup() {
  lcd.begin(16, 2);   // configurer le nombre de colonnes et de lignes de l'écran LCD :
}
 
void loop() {
  tension = analogRead(A0) * 5.0 / 1023.0;   // Lecture de la tension et conversion en V
  pression = tension / 0.0006429 - 311;   // Obtention de la pression en hPa
 
  // Affichage de la pression sur l'écran LCD
  lcd.clear();   // effacer l'écran
  lcd.setCursor(0, 0);  // mettre le curseur à la première colonne, première ligne
  lcd.print("P = ");   
  lcd.print(pression,0);   
  lcd.print(" hPa");
 
  delay(1000);
}



Mesurer une pression avec un étalonnage du capteur

En ajoutant un pressiomètre au montage précédent, il est possible d'étalonner le capteur de pression.
La tension sera affichée sur l'écran LCD ou sur le moniteur série, la pression sera relevée sur le pressiomètre.

Le montage

Le code avec un affichage sur le moniteur série

Cliquez pour afficher le code

Cliquez pour masquer le code

float tension;   // Déclaration de la variable tension 
 
void setup() {
  Serial.begin(9600);   // Initialisation de la communication série
}
 
void loop() {
  tension = analogRead(A0) * 5.0 / 1023.0;   // Lecture de la tension et conversion en V
 
  // Affichage de la tension sur le moniteur série
  Serial.print(tension,2);
  Serial.println(" V");
  delay(1000);
}


Le code avec un affichage sur l'écran LCD

Cliquez pour afficher le code

Cliquez pour masquer le code

#include <Wire.h>     // inclure la bibliothèque permettant la communication par le protocole I2C
#include "rgb_lcd.h"  // inclure la bibliothèque pour l'écran LCD
 
rgb_lcd lcd;   // création d'un objet lcd
 
float tension;   // Déclaration de la variable tension
 
void setup() {
  lcd.begin(16, 2);   // configurer le nombre de colonnes et de lignes de l'écran LCD :
}
 
void loop() {
  tension = analogRead(A0) * 5.0 / 1023.0;   // Lecture de la tension et conversion en V
 
  // Affichage de la tension sur l'écran LCD
  lcd.clear();   // effacer l'écran
  lcd.setCursor(0, 0);  // mettre le curseur à la première colonne, première ligne
  lcd.print("V = ");   
  lcd.print(tension,2);   
  lcd.print(" V");
 
  delay(1000);
}



Mesures

Volume V (mL) 20 25 30 35 40 45 50 60
Pression P (hPa) 1394 1191 1034 917 823 740 678 580
Tension U (V) 1,09 0,95 0,85 0,78 0,71 0,66 0,62 0,56

  • La modélisation de cette droite donne pour équation : P = 1540 x U - 275 ou P = U / 0,00064935 -275
  • La sensibilité est 0,649 mV/hPa ou 6,49 mV/kPa conforme aux données constructeur.

Cette équation peut remplacer celle utilisée dans le code utilisant les données constructeur (premier programme ci-dessus).


La loi de Mariotte

Avec les mesures précédentes, il est possible d'illustrer la loi de Mariotte.

Pour chaque volume mesuré, j'ai ajouté un volume résiduel de 7 mL correspondant au volume d'air occupé dans les tuyaux.
(Volume d'un cylindre : Vrésiduel = π x r2 x Longueur du tuyau . J'ai pris r = 0,2 cm).




Lien utile

Sur le site de l'académie de Besançon, vous trouverez une proposition de TP pour les spécialités de première (fin de la page).


Statistiques du site

  • Cette page a été consultée par 3 visiteurs aujourd'hui.
  • Cette page a été consultée par 527 visiteurs depuis le 17/04/2024.
arduino/plaque_grove_du_lycee_valin/comment_utiliser_un_capteur_de_pression_grove.txt · Dernière modification : 17/04/2024 18:09 de Stéphane LAURENT

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki