Introduction

La pression atmosphérique diminue lorsque l’altitude augmente. Il est donc possible d’utiliser un capteur de pression pour estimer l’altitude.

Vous pouvez comparer les valeurs obtenues en changeant la hauteur du capteur (par exemple sur un étage différent d’un bâtiment) pour visualiser l’effet de l’altitude sur la pression.

Programme du circuit

void setup() {
  Serial.begin(9600);
}

void loop() {
  float AnalogP;
  float AnalogPf;
  float Altitude;
  float Altitudef;

  // Lecture capteur pression
  AnalogP = float(analogRead(A0));
  AnalogPf = ((AnalogP / 1024) + 0.095) / 0.009;

  // Calcul altitude à partir de la pression
  Altitude = pow(AnalogPf / 101.325, 0.1903);
  Altitudef = (1 - Altitude) * 44300 + 100;

  // Affichage série
  Serial.println();
  Serial.print("Pression : ");
  Serial.print(AnalogPf);
  Serial.print(" kPa    ");

  Serial.print("Altitude : ");
  Serial.print(Altitudef);
  Serial.print(" meters");

  delay(1000);
}
  • analogRead(A0) lit la tension sur la broche A0, renvoyant un nombre entier entre 0 et 1023.

  • La formule ((AnalogP / 1024) + 0.095) / 0.009 convertit cette lecture brute en pression en kPa.

    • (AnalogP / 1024) normalise la valeur entre 0 et 1.

    • + 0.095 et / 0.009 ajustent la plage pour correspondre aux caractéristiques du capteur utilisé.

    • AnalogPf / 101.325 : normalise la pression par rapport à la pression atmosphérique au niveau de la mer (101,325 kPa).

    • pow(..., 0.1903) : calcule une valeur intermédiaire basée sur la loi barométrique simplifiée.

    • (1 - Altitude) * 44300 + 100 : convertit cette valeur en altitude approximative en mètres.

      • La constante 44300 correspond à la hauteur atmosphérique standard utilisée dans la formule.

      • Le + 100 semble être un offset pour ajuster l’altitude dans cet exemple.