Skip to Content

Cómo conectar el sensor de presión digital BMP180 con Arduino

Cómo conectar el sensor de presión digital BMP180 con Arduino

Este tutorial le mostrará cómo interconectar un sensor digital de presión y temperatura BMP180 con el Arduino.

Al final de este tutorial, podrás leer los datos del BMP180 fácilmente. Puedes utilizar los datos en tus próximos proyectos de Arduino.

Encontrará que el sensor BMP180 es útil en varias aplicaciones para calcular la velocidad vertical, monitorizar el tiempo, aplicaciones deportivas, navegación en interiores, etc.

Tendrá toda la experiencia necesaria para entender y trabajar con el sensor BMP180.

En las secciones iniciales del artículo te proporcionaré los pinouts del sensor BMP180, el rango de funcionamiento y la precisión del sensor.

La sección restante le mostrará cómo conectar el BMP180 al Arduino y los bocetos de ejemplo del Arduino para leer los valores del sensor.

Overview

Componentes necesarios para conectar el BMP180 a Arduino

Componentes de hardware 

Software

Makerguides.com participa en el Programa de Asociados de Amazon Services LLC, un programa de publicidad de afiliados diseñado para proporcionar un medio para que los sitios ganen honorarios de publicidad mediante la publicidad y los enlaces a productos en Amazon.com.

Puede leer los valores del sensor BMP180 utilizando las piezas indicadas anteriormente. Comencemos.

¿Qué es el sensor BMP180?

BMP180 es un sensor de presión barométrica dedicado. Le ayuda a crear proyectos emocionantes que pueden encontrar aplicaciones en:

  • Construcción de estaciones meteorológicas
  • Proyectos deportivos (basados en la altitud)
  • Proyectos con drones
  • Navegación GPS mejorada
  • Calefacción y ventilación de las habitaciones, etc.

La conexión del circuito es sencilla. No necesita un circuito complejo para alimentar y leer el sensor BMP180.

BMP180 funciona a través de I2C y puede funcionar a una alta velocidad de hasta 3,4 MHz.

Puede leer los datos de presión y temperatura del sensor BMP180 con diferentes niveles de precisión:

  • Modo de ultrabajo consumo (menor consumo de energía)
  • Estándar
  • Alta resolución
  • Resolución ultra alta (mayor consumo de energía)

El BMP180 viene en un paquete muy pequeño de 7 pines. He dado los Pinouts del sensor BMP180 en la siguiente tabla.

los Pinouts del sensor BMP180
Pinout of BMP180

Encontrarás varias placas de expansión de sensores BMP180 por ahí. Le ayudará a conectarse fácilmente a las placas Arduino utilizando cables Dupont.

Si sigues este tutorial, puedes trabajar con cualquier placa de expansión BMP180. Yo estoy usando una placa BMP180 de Adafruit.

Aquí están las placas de sensores de expansión BMP180 que se encuentran comúnmente.

Tarjetas de sensores de expansión BMP180

Este artículo le mostrará las conexiones y el código utilizando el sensor BMP180 de Adafruit. En la siguiente imagen, verás las partes de la placa del sensor BMP180 en la imagen de abajo.

Tarjeta de sensores BMP180

Las líneas SCL y SDA necesitan resistencias pullup. En la placa del sensor, las resistencias ya están disponibles.

La placa del sensor BMP180 tiene 5 pines. Le informaré sobre los 5 pines en la tabla siguiente:

VINTensión de alimentación de entrada. El rango es de 3 V a 5 V
3V03 V pin out del regulador
GNDPin de tierra. Conéctalo al pin GND de Arduino
SCLLínea de reloj I2C(Serial CLock)
SDALínea de datos I2C(Serial DAta)

El rango de funcionamiento del BMP180 es el siguiente:

  • Rango de temperatura: de -40 °C a 85 °C. Por lo tanto, puede utilizarse en una variedad de aplicaciones con temperaturas extremas. Tenga en cuenta que la especificación de precisión cubrirá un rango de temperatura limitado de 0 °C a 65 °C.
  • Rango de presión: 300 a 1100 hPa. Este rango puede ayudarte a crear aplicaciones para interiores como la navegación, así como en los juegos.
rango de operación del BMP180
Rango de temperatura-40 °C a 85 °C
Rango de presión300 a 1100 hPa
Precisión de la temperatura+/- 1 °C
Precisión de la presión (relativa)+/- 0,12 hPa
Precisión de la presión (absoluta)+/- 1 hPa

You can find more details in the datasheet:

Instrucciones paso a paso para conectar el BMP180 a Arduino

Primero destacaré los detalles de los pines y las conexiones. Los siguientes pasos te llevarán a través de una guía de conexión paso a paso para completar este proyecto.

Información sobre los pines del BMP180

Arduino UNOTablero BMP180
5 VVIN
GNDGND
PIN A4SDA
PIN A5SCL
No hay conexión3V0

En la siguiente sección, se explica paso a paso cómo conectar el sensor BMP180 al Arduino UNO.

Paso 1: Cableado de Arduino y la placa BMP180

1) Conectar el GND de ambos sensores Arduino UNO y BMP180

Coge un jumper (cable Dupont) y conecta un extremo al pin GND del Arduino.

Conecta el otro extremo del puente al pin GND de la placa del sensor BMP180.

Siempre es una buena práctica conectar primero los pines GND.

Conectar el GND de ambos sensores Arduino UNO y BMP180

2) Connect another cable between the Arduino A4 pin and the SDA pin of the BMP180.

cable entre el pin A4 del Arduino y el pin SDA del BMP180

3) Make the third connection between Arduino Pin A5 and SCL pin of the BMP180 board.

tercera conexión entre el pin A5 de Arduino y el pin SCL de la placa BMP180

4) Make the last connection between the Arduino 5V pin and the VIN pin on the BMP180 module.

El pin de 5V de Arduino y el pin VIN del módulo BMP180

Encontrarás tres pines GND en el Arduino UNO. Puedes conectarte al pin GND , que es más fácilmente accesible. 

¡Enhorabuena! Has completado las conexiones entre el Arduino UNO y el sensor BMP180.

conexiones entre el Arduino UNO y el sensor BMP180

El cableado del sensor BMP180 con Arduino Mega es similar a los pasos anteriores. Aquí están los detalles de conexión necesarios.

Cableado del sensor BMP180 con Arduino Mega

Las líneas I2C para las placas Arduino están presentes en diferentes pines. La siguiente tabla le ayudará a encontrar los pines I2C para las placas que tiene.

Arduino UNO, EthernetA4 (SDA), A5 (SCL)
Arduino Mega256020 (SDA), 21 (SCL)
Arduino Leonardo2 (SDA), 3 (SCL)
Arduino Due20 (SDA), 21 (SCL), SDA1, SCL1

Paso 2: Cómo instalar las librerías de Arduino necesarias para el sensor BMP180

1) Abre el sketch de Arduino y ve a Herramientas - Haz clic en Gestionar Bibliotecas

Puede utilizar esta opción para instalar las bibliotecas de terceros que no estén ya disponibles en el IDE

Abra el Arduino sketch y vaya a Herramientas

2) Search for the Adafruit BMP180 library and hit Enter. You will find the Adafruit BMP180 library in the results. Click on Install.

Buscar la biblioteca Adafruit BMP180

3) Also install the needed Adafruit unified sensor in the same way.

Sensor unificado Adafruit

4) You also need the Adafruit Bus IO library. Install it as well.

Biblioteca IO de Adafruit Bus

5) Puede encontrar los ejemplos de trabajo de BMP180 en la ruta indicada a continuación.

Ejemplos de trabajo de BMP180

Paso 3: Código I2C Arduino para el sensor BMP180

1) Abre el IDE de Arduino y pega el siguiente código en un boceto vacío

#include "Adafruit_BMP085.h"

Adafruit_BMP085 bmp;

void setup() {
  Serial.begin(9600);
  if (!bmp.begin()) {
    Serial.println("Could not find a valid BMP085 sensor, check wiring!");
    while (1) {}
  }
}

void loop() {
  Serial.print("Temperature = ");
  Serial.print(bmp.readTemperature());
  Serial.println(" *C");

  Serial.print("Pressure = ");
  Serial.print(bmp.readPressure());
  Serial.println(" Pa");

  // Calculate altitude assuming 'standard' barometric
  // pressure of 1013.25 millibar = 101325 Pascal
  Serial.print("Altitude = ");
  Serial.print(bmp.readAltitude());
  Serial.println(" meters");

  Serial.print("Pressure at sealevel (calculated) = ");
  Serial.print(bmp.readSealevelPressure());
  Serial.println(" Pa");

  // you can get a more precise measurement of altitude
  // if you know the current sea level pressure which will
  // vary with weather and such. If it is 1015 millibars
  // that is equal to 101500 Pascals.
  Serial.print("Real altitude = ");
  Serial.print(bmp.readAltitude(101500));
  Serial.println(" meters");

  Serial.println();
  delay(500);

2) Descripción de las principales partes del código BMP180

Adafruit_BMP085 bmp; Crea el objeto bme de tipo Adafruit_BMP180

Serial.begin(9600); Habilitar la comunicación serial para que los parámetros del sensor BMP180 puedan ser visualizados en la terminal serial

readTemperature(); Lee la temperatura en grados centígrados. Si quieres en Fahrenheit, puedes usar la ecuación siguiente 

°F = °C * 1,8000 + 32,00

readPressure(); Devuelve la presión medida en hPa

readAltitude(SEALEVELPRESSURE_HPA); Devuelve la altura calculada en base a la presión y al parámetro enviado.

Preguntas frecuentes sobre el sensor BMP180 y Arduino

En esta sección he recopilado las preguntas más frecuentes sobre el sensor BMP180.

Si tiene más preguntas, responda en los comentarios. 

1) ¿Cuál es la precisión del sensor BMP180?

La precisión de los sensores de temperatura es de ±0,5 °C a temperatura ambiente.

Para un rango de temperatura de funcionamiento más amplio, la precisión es de ±1 °C.

El sensor de presión tiene un rango de ruido de 0,02 hPa con el modo de resolución avanzada.

2) ¿Cuál es la dirección I2C del sensor BMP180?

El sensor BMP180 tiene una dirección I2C fija de 0x77.

Esto significa que no puedes tener dos sensores a bordo sin un circuito extra para manejar dos dispositivos I2C con la misma dirección.

3) ¿Cuál es la diferencia entre los sensores BMP180 y BMP085?

El sensor BMP180 es el sucesor del BMP085. BMP180 tiene una mayor precisión y modos avanzados, lo que lo convierte en un sensor de presión de última generación.

BMP085 y BMP180 son 100% compatibles con los comandos y el formato de los datos.

4) ¿Cómo se calibra un sensor BMP180?

El sensor BMP180 tiene valores de recorte programados de fábrica almacenados en su memoria interna no volátil EEPROM). Puede leerlos pero no puede modificarlos.

Los valores de recorte pueden mejorar la precisión del sensor utilizando las fórmulas indicadas en la hoja de datos del BMP180.

5) ¿Cuáles son los valores de pull-up necesarios para el bus I2C del BMP180?

Se necesita una resistencia de entre 2,2 kΩ y 10 kΩ para el bus I2C del sensor BMP180.