Trastejant

Crea, comparte, aprende y disfruta

Barómetro BMP085

Un barómetro es un instrumento capaz de medir la presión atmosférica.

Normalmente, los sensores que podemos encontrar miden esta presión basándose en la deformación de una pequeña caja metálica que puede verse en su superficie. Dentro de esta caja se ha hecho el vacío, por lo que no hay una presión interna que contrarreste la presión del aire sobre ella, lo cual la hace más sensible a las variaciones.

Para este tutorial vamos a utilizar un sensor barométrico BMP085, ya que existe una librería (que podemos descargar aquí) que nos dará un acceso rápido y sencillo a las lecturas del sensor.

Este sensor no solo nos permite conocer la presión atmosférica del sitio donde nos encontramos (útil por ejemplo para predecir la meteorología) sino que además nos permite conocer la altitud a la que nos encontramos (un uso muy interesante para proyectos de Drones) e ,incluso, cuenta con un sensor de temperatura bastante fiable.
Esta es la conexión del sensor al Arduino:

Barómetro BMP085

Pin del barometro Pin de Arduino
SDA A4
SCL A5
Vcc 3.3V
GND GND

 

Es MUY IMPORTANTE utilizar estos pines, ya que la comunicación se realiza por i2C y estos pines son los que cuentan con este tipo de conexión en la mayor parte de los Arduinos (todos los basados en los chips 168 o 328).

Otro punto fundamental es la alimentación. Algunos sensores BMP085 vienen integrados en un módulo que cuenta con un regulador de tensión, lo que nos permite conectarlo directamente a 5V, PERO NO EN TODOS LOS CASOS ES ASí. El sensor funciona a 3.3V, por lo que conectarlo a 5V sin protección lo destruirá de forma definitiva. Asegúrate bien de conocer las características de tu módulo antes de conectarlo.

Una vez lo tenemos conectado, es el momento de empezar a pedirle lecturas. Como ya dijimos el barómetro BMP085 cuenta con una librería para Arduino que simplifica mucho esta tarea. Veamos sus funciones:

readTemperature()

Devuelve una lectura de la temperatura, en grados centígrados.

readPressure()

Devuelve la lectura de la presion atmosférica medida en Pascales

readAltitude()

Devuelve la altitud a la que se encuentra. En realidad lo que hace es asumir que a nivel del mar la presión es de 1013 milibares, con ese dato y la presión actual estima la altitud a la que se encuentra.

Si conocemos la presión real que existe a nivel del mar podemos tener una lectura más exacta pasando este dato (en pascales) como parámetro.

Ejemplo:

/*Utilizandola así hace una estimación basada en que la
presioón a nivel del mar es de 1013 milibares. */
 
int altitud = bmp.readAltitude();
 
/*Supongamos que sabemos que la presión atmosferica a nivel del mar en ese momento
es de 1015 milibares. Pasando este dato a pascales no da un total de 101500 Pa.*/
 
int altitud = bmp.readAltitude(101500);// de esta forma, la medicion de la altitud será más precisa.

Y aquí teneis un ejemplo completo de su funcionamiento:

    #include   
    #include                     
 
    Adafruit_BMP085 bmp;  
 
    void setup() {  
        Serial.begin(9600);  
        bmp.begin();                        
    }  
 
    void loop() {  
        Serial.print("Temperatura = ");  
        Serial.print(bmp.readTemperature());  
        Serial.println(" *C");  
 
        Serial.print("Presion = ");  
        Serial.print(bmp.readPressure());  
        Serial.println(" Pa");  
 
        Serial.print("Altud = ");  
        Serial.print(bmp.readAltitude());  
        Serial.println(" m");                     
 
        Serial.println();  
        delay(500);  
    }

También te puede interesar...

No hay temas relacionados

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.