Problème tension capteur pression absolu

Bonjour,

Je débute depuis peu à l'Arduino et j'ai beaucoup de choses à apprendre.

Je suis en train de tester un TP Arduino sur le capteur pression absolu. Je n'arrive pas à étalonner pour obtenir les tensions U1 et U2. Ces valeurs me permettront de calculer les coefficients a et b du programme pression. Les valeurs de tension obtenues sur l'ecran lcd varient énormément de 0 à 0.29 V mais quand j'utilise la seringue les valeurs restent identiques....

le TP : 1ère PC : Mesurer une pression à l’aide d’un microcontrôleur et tester la loi de Mariotte. – Physique – Chimie

le programme Arduino pour la tension : c'est fait exprès de combiner le lecteur lcd et moniteur série car on est en train de tester pour voir lequel est le mieux adapté pour les élèves.

#include <Wire.h>              //importation des librairies
#include <rgb_lcd.h>           //pour l'afficheur
rgb_lcd lcd;                   //creation de l'objet afficheur
int val;
float tension;                 // int : entier et float : décimal
float pression;

void setup() 
{
lcd.begin(16, 2);           //configure l'afficheur 16 lig 2 col
lcd.setRGB(255, 255, 0);    //couleur de fond (R, G, B)
lcd.print("Tension :");     //affichage 1ere ligne

Serial.begin(9600);
}                               


void loop() 
{
  val = analogRead(A0);       //lecture de la tension et conversion en V
 tension = val*5/1023.0;

  lcd.setCursor(0, 1);        //placement curseur debut 2eme ligne
  lcd.print(tension);         //affichage de la tension
  lcd.print(" Volts ");

  Serial.println("Tension =");
  Serial.print(tension);
  Serial.print("Volts");

  delay(1000);                //pause de 1000ms
}

Programme pression quand on aura obtenu les valeurs a et b :

int pressionPin = A0 ;
int valeur ;
float tension ;
float pression ; 

float a =  ; // Coefficient dépendant du capteur
float b =  ; // Coefficient dépendant du capteur

void setup() {
 Serial.begin(9600) ;
 pinMode(pressionPin, INPUT) ;
}

void loop() {
  valeur = analogRead(pressionPin) ;
  tension = valeur*(5.0/1023.0) ;
  pression = a*tension+b ;

  Serial.println("pression=");
  Serial.println(pression);
  Serial.println("hPa");
  delay(1000) ;
}

Il manque les valeurs a et b dans les deux lignes float pour faire fonctionner ce programme


On ne voit pas très bien le câblage sur les photos mais quelque chose me perturbe malgré tout.
D'après la datasheet du capteur il ne devrait y avoir que 3 fils de raccordés sur celui-ci.


je suis aussi étonné par la valeur affiché sur ta photo.
Avec un coef de 20mV/kPa, pour 1016hPa la tension devrait être bien plus élevée que ça.


C'est, je pense, risquer d'ajouter de la difficulté à la difficulté.

As-tu mesuré les tensions avec le capteur seul et un bête voltmètre ?

Bonsoir @avlulu

Sur la page présentant le TP (Académie de Besançon) on peut accéder à la description de deux maquettes où l'on voit clairement le brochage à respecter pour le capteur MPX4250A.... (Vout, GND et Vcc) , ne rien relier aux 3 broches restantes.

Bonjour,
Pour les fils, j'ai suivi le protocole du TP :

Sur d'autres sites, les branchements sont différents... J'ai 4 fils, je branche lesquelles sur les 3 premières broches?

Je vais garder le programme sur l'affichage LCD que moniteur série.




Le branchement plus détaillé

J'observe sur le schéma du montage la position du capteur : la broche qui présente une "encoche" n'est pas branchée. Tandis que d'après la datasheet du capteur, la première broche "encoche" et les deux autres doivent être branchées. Les 3 dernières non. D'où ma confusion car je ne comprends pas

Je ne sais pas prendre les mesures sur les composants électroniques, ou pointer la sonde rouge et la sonde noire, sur quelles broches? Mon niveau de physique n'est pas autant avancé mais je me forme.

  • La broche avec l'encoche doit aller sur une entrée analogique (A0 ou A1) ton code utilise A0 donc tu prends A0 (fil jaune)
  • La seconde va sur GND (fil noir)
  • La troisième sur Vcc (fil rouge)

A noter, dans la datasheet, les broches non utilisées sont marquée DNC (Do Not Connect, Ne Pas Connecter) il faut espérer que cela n'aura rien abîmé.

Merci j'essaie tout de suite

J'obtiens enfin des valeurs de tensions qui varient quand je fais bouger la seringue.. donc c'était bien une histoire de branchement sur les broches du capteur de pression.
j'obtiens pour :

  • 1020 hPa : 1.79 V
  • 456 hPa : 0.66V
  • 1620 hPa : 3.02 V

Merci pour cette information. :sweat_smile: :pray:

Comme ceci avec une alim 5V

1 Like

Merci beaucoup

Le TP a été réalisé avec succès : J'ai pu avoir les coefficients a et b grâce aux tensions obtenues. Du coup , j'ai pu étalonner le capteur pression et faire les mesures de pression sur le moniteur série.

volume seringue 5 mL : 2445 hPa

  • 10 mL : 1635 hPa
  • 20 mL : 1004 hPa
  • 30 mL : 699 hPa
  • 40 mL : 557 hPa
  • 50 mL : 460 hPa
  • 60 mL : 384 hPa

Je vous remercie beaucoup pour vos explications, j'ai tellement à apprendre mais c'est avec plaisir !

1 Like

Bonne continuation et à la prochaine fois.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.