Omet navegació

9.7 Baròmetre BMP180

1) Connecta el baròmetre de la forma següent:

Baròmetre BMP180 + ArduinoUNO

2) Baixa la llibreria SFE_BMP180 de github i deixa-la descomprimida a la carpeta on Arduino té les llibreries. Sols ser /home/«usuari»/Arduino/libraries

3) Carrega el següent programa:

// Font1: https://www.luisllamas.es/medir-presion-del-aire-y-altitud-con-arduino-y-barometro-bmp180/
// Font2: https://www.sunfounder.com/learn/Sensor-Kit-v2-0-for-Arduino/lesson-7-barometer-sensor-kit-v2-0-for-arduino.html
// Llibreria: https://github.com/LowPowerLab/SFE_BMP180

#include <SFE_BMP180.h>
#include <Wire.h>

 //Declarem el objecte "barometre" que rebrà les dades de SFE_BMP180
SFE_BMP180 barometre;
 
void setup()
{
  Serial.begin(9600);
 
  if (barometre.begin())
    Serial.println("Baròmetre iniciat");
  else
  {
    Serial.println("Error a l'iniciar el Baròmetre");
    while(1); // bucle infinit
  }
}
 
void loop()
{
  char status;// Definim la variable "status" char
  double T,P; // Definim T i P per rebre la Temperatura en ºC i la Pressió en mil·libars
  
  status = barometre.startTemperature(); //Inici de lectura de temperatura
  if (status != 0)
  {   
    delay(status); //Pausa per tal que finalitze la lectura
    status = barometre.getTemperature(T); //Obtenim la temperatura
    if (status != 0)
    {
      status = barometre.startPressure(P); //Inicia lectura de pressió
      if (status != 0)
      {        
        delay(status); //Pausa per tal que finalitze la lectura       
        status = barometre.getPressure(P,T); //Obtenim la pressió
        if (status != 0)
        {                  
          Serial.print("Temperatura: ");
          Serial.print(T,3);// amb 3 decimals si no canvies el número
          Serial.print(" ºC , ");
          Serial.print(" "); //
          Serial.print(" "); // Posem 3 espais en blanc per facilitar la lectura
          Serial.print(" "); //
          Serial.print("Pressió: ");
          Serial.print(P,2); // amb dos decimals si no canvies el número
          Serial.println(" mb");          
        }      
      }      
    }   
  } 
  delay(1000); // esperem un segon i torna a començar el bucle
}// final de void_loop