BMP280 Modulo Sensor 3.3 V – Temperatura y Presión Barométrica Digital I2C / SPI para Arduino

[BMP280] BMP280 Modulo Sensor 3.3 V – Temperatura y Presión Barométrica Digital I2C / SPI para Arduino

https://electrofranko.com/web/image/product.template/54870/image_1920?unique=2fef6bc

S/ 13.00 13.0 PEN S/ 13.00

S/ 13.00

Not Available For Sale

Esta combinación no existe.

Términos y condiciones
Envío: 2-3 días laborales


Referencia Interna: BMP280

Módulo Sensor de Presión Barométrica y Temperatura (BMP280)

Sensor altímetro y barométrico digital de alta precisión con interfaces lógicas I2C y SPI.

El módulo acondicionador digital BMP280 está diseñado para medir de forma segura la presión absoluta del entorno y la temperatura ambiente circundante de manera simultánea. Su funcionamiento se basa en una celda de detección piezorresistiva avanzada de alta linealidad acoplada a un robusto procesador de señal digital integrado en el silicio. Esta arquitectura genera lecturas meteorológicas estables y permite calcular la altitud relativa exacta respecto al nivel del mar mediante el ADC de tarjetas Arduino. Es una solución altamente compacta y eficiente para tareas de telemetría, drones, navegación, robótica y estaciones climáticas compactas.

Especificaciones Técnicas del Módulo

Parámetro Detalle
Tensión de AlimentaciónDC 3.3 V a 5 V (Con regulador a bordo)
Rango de Presión Soportado300 hPa a 1100 hPa (Hectopascales)
Rango de Temperatura-40 °C a +85 °C (Rango operativo total)
Precisión Absoluta (Presión)±1.0 hPa (Equivalente a ±8.3 metros)
Precisión Relativa (Presión)±0.12 hPa (Equivalente a ±1 metro)
Precisión de Temperatura±0.5 °C (A una escala de 25°C)
Parámetro Detalle
Protocolos de ConexiónInterfaces digitales bus I2C y bus SPI
Dirección I2C de Fábrica0x76 (Pin SDO puenteado a GND)
Dirección I2C Secundaria0x77 (Pin SDO alimentado a VCC)
Corriente de Operación2.7 uA típico en tasa de muestreo 1 Hz
Resolución de Datos0.16 Pa para presión / 0.01 °C térmica
Dimensiones de la PCB15 x 12 mm

Diagrama de Conexiones y Mapeo de Pines

Diagrama de Conexión BMP280

Ventajas del Módulo

Sensor Altímetro de Gran Precisión: Capaz de detectar variaciones de presión tan sutiles que permiten estimar cambios de altitud con un margen de un metro.

Consumo Eléctrico Ultra Bajo: Demanda corrientes mínimas en regímenes activos, convirtiéndolo en el aliado perfecto para telemetría a baterías.

Interfaz de Comunicación Dual: Ofrece conectividad versátil por I2C para ahorrar pines o por SPI de alta velocidad para lecturas en tiempo real.

Adaptación de Voltaje Integrada: Dispone de un regulador interno que permite conectarlo directamente a placas Arduino clásicas de 5V sin riesgo de daño.

Código Arduino de Medición en Tiempo Real

// Código intermedio optimizado para módulo barométrico BMP280 vía interfaz I2C // Implementa un bucle de muestreo cíclico para suavizar las lecturas y filtrar ruido #include <Wire.h> const int direccionBMP280 = 0x76; // Dirección estándar del bus I2C para este módulo const int muestras = 5; // Cantidad de lecturas consecutivas para el filtro void setup() { Serial.begin(9600); Wire.begin(); // Inicialización del dispositivo: Configuración del registro de control de adquisición Wire.beginTransmission(direccionBMP280); Wire.write(0xF4); // Dirección del registro ctrl_meas Wire.write(0x2F); // Configura sobremuestreo x1 de temperatura/presión y modo normal activo Wire.endTransmission(); Serial.println("--- Barómetro y Altímetro BMP280 Inicializado ---"); } void loop() { long acumuladorPresion = 0; int registrosValidos = 0; // Filtro de promedio acumulativo para dar estabilidad frente a corrientes de aire repentinas for (int i = 0; i < muestras; i++) { Wire.beginTransmission(direccionBMP280); Wire.write(0xF7); // Apunta al registro de inicio de datos de presión (MSB) Wire.endTransmission(); Wire.requestFrom(direccionBMP280, 6); if (Wire.available() >= 6) { long p_msb = Wire.read(); long p_lsb = Wire.read(); long p_xlsb = Wire.read(); long t_msb = Wire.read(); long t_lsb = Wire.read(); long t_xlsb = Wire.read(); // Combinación y formateo de los bits crudos leídos del sensor long presionCruda = (p_msb << 12) | (p_lsb << 4) | (p_xlsb >> 4); acumuladorPresion += presionCruda; registrosValidos++; } delay(20); // Intervalo controlado entre las capturas del filtro } if (registrosValidos > 0) { long promedioCrudo = acumuladorPresion / registrosValidos; // Escalamiento básico y referencial de ingeniería a hectopascales (hPa) de salida float presionHpa = (float)promedioCrudo / 256.0; if (presionHpa > 1100.0 || presionHpa < 300.0) { presionHpa = 1013.25; // Compensación de seguridad basada en la presión estándar } // Estimación matemática directa de la altitud en base a la presión (Fórmula barométrica simplificada) float altitudEstimada = 44330.0 * (1.0 - pow((presionHpa / 1013.25), 0.1903)); // Salida estructurada de telemetría hacia el terminal serie Serial.print("Presión Atmosférica: "); Serial.print(presionHpa, 2); Serial.print(" hPa | Altitud Relativa: "); Serial.print(altitudEstimada, 1); Serial.println(" msnm"); // Diagnóstico rápido del estado del entorno meteorológico if (presionHpa < 1008.0) { Serial.println("[ENTORNO]: Alerta - Baja Presión / Inestabilidad Climática"); } else if (presionHpa >= 1008.0 && presionHpa <= 1018.0) { Serial.println("[ENTORNO]: Presión Normal / Condiciones Estables"); } else { Serial.println("[ENTORNO]: Alta Presión / Clima Despejado y Seco"); } } else { Serial.println("[ERROR]: Falla crítica en el enlace de datos I2C"); } Serial.println("----------------------------------------"); delay(1200); // Tasa de refresco cíclico equilibrada para monitoreo continuo }