El BMP280 es un sensor Barométrico e I2C ideal para medir Temperatura y Presión Atmosférica con gran precisión.
🔌 1. Conexiones Paso a Paso (Pines)
Utilizaremos la comunicación I2C por hardware que incorpora el Arduino Mega (Pines 20 y 21).
Pin del Sensor BMP280
Pin en Arduino Mega
Descripción
VCC
3.3V
⚠️ Importante: Conectar a 3.3V para no dañar el chip.
GND
GND
Masa / Tierra
SCL
Pin 21 (SCL)
Reloj del bus I2C
SDA
Pin 20 (SDA)
Datos del bus I2C
💡 Nota sobre pines sobrantes: Los pines CSB y SDO los dejamos desconectados si vas a usar la dirección I2C estándar (0x76).
📚 2. Librerías Necesarias
Para que el ordenador reconozca el sensor, instala estas dos librerías en el Arduino IDE:
Abre el Arduino IDE y ve a Herramientas $\rightarrow$ Administrar bibliotecas… (o pulsa Ctrl + Shift + I).
Busca “Adafruit BMP280” e instálala.
Si el sistema te pregunta si deseas instalar dependencias (Adafruit Unified Sensor), haz clic en “Instalar todo” (Install all).
💻 3. Código Completo para Arduino Mega
Copia este código en tu boceto y súbelo al Arduino Mega:
C++
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP280.h>
// Creamos el objeto del sensor BMP280
Adafruit_BMP280 bmp;
void setup() {
Serial.begin(9600);
while (!Serial);
Serial.println("Iniciando lectura de sensor BMP280...");
// Iniciar en la dirección I2C 0x76 (si falla, prueba cambiando a 0x77)
if (!bmp.begin(0x76)) {
Serial.println("❌ No se encuentra el BMP280. Revisa conexiones o prueba con 0x77.");
while (1); // Detiene la ejecución si falla
}
/* Configuración opcional para mejorar precisión de lecturas */
bmp.setSampling(Adafruit_BMP280::MODE_NORMAL, /* Modo de funcionamiento */
Adafruit_BMP280::SAMPLING_X2, /* Temp. oversampling */
Adafruit_BMP280::SAMPLING_X16, /* Presión oversampling */
Adafruit_BMP280::FILTER_X16, /* Filtrado */
Adafruit_BMP280::STANDBY_MS_500); /* Tiempo de espera */
Serial.println("✅ Sensor BMP280 iniciado correctamente.\n");
}
void loop() {
// Lectura de Temperatura en Celsius
float temp = bmp.readTemperature();
// Lectura de Presión (se divide entre 100 para pasarlo de Pa a hPa/mbar)
float presion = bmp.readPressure() / 100.0F;
// Imprimir valores en el Monitor Serie
Serial.print("Temperatura: ");
Serial.print(temp);
Serial.println(" °C");
Serial.print("Presión: ");
Serial.print(presion);
Serial.println(" hPa");
Serial.println("-----------------------------");
delay(2000); // Espera 2 segundos entre lecturas
}
🚀 4. Comprobación Final
Conecta el Arduino al ordenador y abre el Monitor Serie (Herramientas $\rightarrow$ Monitor Serie).
Ajusta la velocidad a 9600 baudios.
Verás cómo aparecen la temperatura y la presión actualizándose cada 2 segundos.
¿Problemas de lectura? Si sale el mensaje ❌ No se encuentra el BMP280, cambia en el código la línea bmp.begin(0x76) por bmp.begin(0x77).