BMP280. Sensor de presión atmosférica
El BMP280 es un sensor que permite medir la presión barométrica y la temperatura ambiente. Así mismo, dado que la altitud sobre el nivel del mar está relacionada con la presión, puede hacer estimaciones sobre la altitud local con una precisión de ± 1m.
Es el sucesor del conocido BMP180 al que mejora en prestaciones.
Características generales
- Rango de presión: 300 – 1100 hPa ± 1hPa
- Rango de temperatura: -40 – 85 ºC ± 1,0 ºC
- Nivel lógico: 3,3V
- Consumo: 2,7 µA
- Comunicación: I2C, SPI
Más información en el datasheet.
Conexión
Dado que el BMP280 tiene un nivel lógico de 3,3V no podemos conectarlo directamente al bus del Arduino, tendríamos que usar un adaptador de niveles. No obstante, podemos usar un par de resistencias pull-up de 4,7K tal como sugiere Arduino Playground en I2C bi-directional level shifter. Así podemos conectar un componente de lógica 3,3V directamente al bus I2C de Arduino.
Arduino | BMP280 |
3,3V | VCC |
GND | GND |
A4 | SDA |
A5 | SCL |
Además de los pines de alimentación VCC y GND, conectaremos el pin A4 de Arduino al SDA del sensor y el pin A5 de Arduino al SCL del sensor.
Código Arduino
Para hacer las lecturas del sensor podemos usar la librería Adafruit_BMP280_Library desarrollada por Adafruit. En esta librería, la dirección por defecto I2C está definida en el archivo Adafruit_BMP280.h
, en la instrucción define BMP280_ADDRESS (0x77)
.
#include <Adafruit_Sensor.h>
#include "Adafruit_BMP280.h"
Adafruit_BMP280 bmp;
float presion;
float temperatura;
int altitud;
void setup() {
bmp.begin();
}
void loop() {
presion = bmp.readPressure()/100;
temperatura = bmp.readTemperature();
altitud = bmp.readAltitude (1015); // Ajustar con el valor local
delay(1000);
}
Comentarios recientes