El sensor de presión barométrica MS5611 es una solución avanzada diseñada para ofrecer alta precisión y bajo consumo de energía. Este sensor es ideal para medir altitud y se utiliza frecuentemente en sistemas de autopiloto para drones (UAVs). Gracias a su tecnología MEMS de última generación y a la experiencia de MEAS Suiza, el MS5611 garantiza una baja histéresis y una alta estabilidad en la medición de la presión barométrica y la temperatura.
Características Principales
- Alta Precisión: El MS5611 proporciona una resolución de presión de 0.012 mbar y una resolución de temperatura de 0.01 °C, asegurando mediciones detalladas y exactas.
- Bajo Consumo de Energía: Con un consumo energético de solo 1 µA en modo de espera (menos de 0.15 µA), es ideal para aplicaciones en drones donde la eficiencia energética es crucial.
- Rango de Medición Amplio: Capaz de medir presiones desde 10 hasta 1200 mBar y temperaturas desde -40 °C hasta 85 °C, lo que lo hace versátil para diversas condiciones ambientales.
- Conversión Rápida: Ofrece una conversión de datos en tan solo 1 ms, lo que permite respuestas rápidas y precisas durante el vuelo.
Conectividad y Compatibilidad
El sensor MS5611 está diseñado para conectarse fácilmente a microcontroladores mediante interfaces I2C o SPI. La selección del protocolo de comunicación se realiza a través del pin PS:
- I2C: Si el pin PS está conectado a 5V, el sensor funciona en modo I2C con direcciones de 0x77 (pin CSB a GND) o 0x76 (pin CSB a VCC).
- SPI: Si el pin PS está conectado a GND, el sensor opera en modo SPI con las conexiones SCL=SCK, SDA=SDI, y SDO=SDO.
Aunque el MS5611 opera internamente a 3.3V, el módulo incorpora un regulador de voltaje que permite su alimentación con 5V. Además, incluye acondicionadores de voltaje para los pines de comunicación lógica.
Especificaciones Técnicas
- Módulo: GY-63
- Chip: MS5611
- Voltaje de Operación: 3.3V – 5V DC
- Interfaz de Comunicación Digital: I2C o SPI
- ADC Interno: 24 bits
- Rango de Medición de Presión: 10 a 1200 mBar
- Resolución de Presión: 0.012 mbar (configurable por software)
- Rango de Medición de Temperatura: -40 °C a 85 °C
- Resolución de Temperatura: 0.01 °C
- Conversión Rápida: 1 ms
- Consumo de Energía: 1 µA (en espera <0,15 µA)
Código de Ejemplo Básico para Arduino
Este código básico te permitirá empezar a trabajar con el sensor MS5611 y verificar que todo está funcionando correctamente.
#include
#include
// Crea una instancia del sensor MS5611
Adafruit_MS5611 ms5611 = Adafruit_MS5611();
void setup() {
Serial.begin(9600);
// Inicia el sensor
if (!ms5611.begin()) {
Serial.println("No se pudo encontrar el sensor MS5611. Verifica las conexiones.");
while (1);
}
Serial.println("Sensor MS5611 inicializado correctamente.");
}
void loop() {
// Lee la presión y la temperatura
ms5611.read();
float pressure = ms5611.getPressure(); // en Pascales
float temperature = ms5611.getTemperature(); // en grados Celsius
// Imprime los resultados en el monitor serial
Serial.print("Presión: ");
Serial.print(pressure);
Serial.println(" Pascales");
Serial.print("Temperatura: ");
Serial.print(temperature);
Serial.println(" °C");
// Espera 1 segundo antes de la siguiente lectura
delay(1000);
}
Explicación del Código
- Inclusión de Bibliotecas: Se incluyen las bibliotecas
Wire.h
para la comunicación I2C yAdafruit_MS5611.h
para manejar el sensor. - Inicialización: En el
setup()
, se inicializa el sensor y se verifica que esté conectado correctamente. - Lectura de Datos: En el
loop()
, se leen y se imprimen la presión y la temperatura en el monitor serial. Los valores se actualizan cada segundo.
Consideraciones
- Protocolos de Comunicación: Este código está configurado para trabajar con I2C. Si estás usando SPI, necesitarás modificar el código para configurar los pines SPI y cambiar las funciones de comunicación.
- Calibración: Asegúrate de calibrar el sensor adecuadamente si es necesario para tus aplicaciones específicas.