Conexión del sensor de presión de aire MS5611 a Arduino

En este artículo te explicaremos cómo conectar el sensor de presión de aire MS5611 a tu placa de Arduino. Con esta guía paso a paso, podrás medir con precisión la presión atmosférica y llevar a cabo proyectos electrónicos aún más sorprendentes. ¡Sigue leyendo para descubrir cómo hacerlo!

Ya sea que desee saber qué altitud ha alcanzado su avión RC, qué tan alto está el paso de montaña por el que está conduciendo o qué tan alto alcanzaron usted y sus amigos excursionistas en su última caminata; El sensor/altímetro de presión de aire de bajo costo MS5611 podría satisfacer sus necesidades.

Descripción general del hardware

El corazón del módulo es un sensor de presión de aire muy pequeño, increíblemente rápido, preciso, silencioso y que ahorra energía de MEAS Suiza: MS5611.

Conexión del sensor de presión de aire MS5611 a Arduino

El MS5611 puede medir presiones de aire de 10 mbar a 1200 mbar con una precisión absoluta de ±1,5 mbar en el rango de presión de 450 a 1100 mbar. Fuera de este rango de presión, la precisión garantizada es de ± 2,5 mbar.

Este sensor de presión de aire está optimizado para altímetros y variómetros con una resolución de altitud de 0,012 mbar, que corresponde a aproximadamente 10 cm (4″) de altura.

El MS5611 cuenta con un sensor de temperatura en chip que se puede utilizar para compensar cambios ambientales y calibrar mediciones. Se trata de un sensor de temperatura razonablemente preciso que mide la “temperatura del chip” en el rango de -40°C a +85°C con una precisión de ±0,8°C.

Requisitos de energía

El módulo está equipado con un regulador de voltaje MIC5205 de precisión de 3,3 V y un traductor de nivel de voltaje, por lo que puede usarlo fácilmente con su microcontrolador favorito de 3,3 V o 5 V.

Conexión del sensor de presión de aire MS5611 a Arduino

El MS5611 consume menos de 1,4 mA durante las mediciones y menos de 0,15 µA en modo de espera. Este bajo consumo energético permite su implementación en dispositivos que funcionan con baterías como teléfonos móviles, wearables o relojes inteligentes.

Interfaces digitales

El MS5611 se comunica a través de I2C o SPI. El pin PS (Selección de protocolo) determina qué interfaz está operativa.

Conexión del sensor de presión de aire MS5611 a Arduino

Al tirar del pin PS a BAJO se selecciona la interfaz SPI, al tirar de PS a ALTO se selecciona la interfaz I2C. Una resistencia pull-up de 1K en el módulo coloca este pin en ALTO para que la interfaz I2C se seleccione de forma predeterminada.

interfaz I2C

El sensor utiliza la interfaz I2C para comunicarse con Arduino. Admite dos direcciones I2C separadas: 0x77Maleficio y 0x76Maleficio. Esto permite utilizar dos módulos MS5611 en el mismo bus o evitar conflictos de direcciones con otro dispositivo en el bus.

Conexión del sensor de presión de aire MS5611 a Arduino

El CSB El pin determina la dirección I2C del módulo. Este pin tiene una resistencia desplegable incorporada de 2,2 K. Por eso si dejas esto CSB Pin no conectado, la dirección I2C predeterminada es 0x77Maleficio y cuando lo conectas a VCC, la línea pasa a nivel ALTO y la dirección I2C se convierte en 0x76Maleficio.

interfaz SPI

¡El sensor también puede comunicarse a través de SPI! Para habilitar la interfaz SPI, conecte el pin PS (Selección de protocolo) a tierra.

Especificaciones técnicas

Aquí están las especificaciones completas:

Fuente de alimentación 3,3 V a 5,5 V
Consumo de corriente ~1,4 mA (durante las mediciones)
~0,15 µA (en modo de espera)
Rango de medición de presión 10 a 1200 mbar
Precisión de impresión absoluta ±1,5 mbar
resolución del CAD 24 bits
Rango de temperatura -40 ˚C a +85 ˚C
Precisión de temperatura ±0,8˚C

Consulte la siguiente hoja de datos para obtener más detalles.

Configuración de pines del módulo MS5611

Ahora veamos el pinout.

Conexión del sensor de presión de aire MS5611 a Arduino

Pines de alimentación:

VCC es el pin de alimentación. Puedes conectarlo a la salida de 5V de tu Arduino.

Tierra es la base común del poder y la lógica.

Pines lógicos SPI:

SCL es el pin del reloj SPI, una entrada al chip.

ASD es el pin de entrada de datos en serie (MOSI) para los datos enviados desde su microcontrolador al MS5611.

CSB es el pin de selección de chip. Si desea conectar varios MS5611 a un microcontrolador, permítales compartir los pines SDA, SDO y SCL y asignar un valor único a cada uno. CSB Bolígrafo.

SDO es el pin MISO (Serial Data Out) para los datos enviados desde el MS5611 a su microcontrolador.

PD es el pin de selección de protocolo. Arrástrelo a BAJO para habilitar la comunicación SPI.

Pines lógicos I2C:

SCL También es el pin del reloj I2C, conéctelo a la línea de reloj I2C de su microcontrolador.

ASD También es el pin de datos I2C, conéctelo a la línea de datos I2C de su microcontrolador.

CSB El pin determina la dirección I2C del módulo. Si dejas esto CSB Pin no conectado, la dirección I2C predeterminada es 0x77Maleficio y cuando lo conectas a VCC, la línea pasa a nivel ALTO y la dirección I2C se convierte en 0x76Maleficio.

PD es el pin de selección de protocolo. Déjelo desconectado para permitir la comunicación I2C.

Cableado de un módulo MS5611 a un Arduino

Ahora que sabemos todo sobre el módulo, ¡podemos empezar a conectarlo a nuestro Arduino!

Comience conectando el pin VCC a la fuente de alimentación. 3V-5V está bien. Utilice el mismo voltaje en el que se basa la lógica de su microcontrolador. Para la mayoría de los Arduinos, esto es 5V. Para dispositivos lógicos de 3,3 V, utilice 3,3 V. Ahora conecte GND a tierra común.

Conecte el pin SCL al pin de reloj I2C y el pin SDA al pin de datos I2C de su Arduino. Tenga en cuenta que cada placa Arduino tiene diferentes pines I2C que deben conectarse en consecuencia. En las placas Arduino con diseño R3, SDA (línea de datos) y SCL (línea de reloj) se encuentran en los encabezados cerca del pin AREF. También se les conoce como A5 (SCL) y A4 (SDA).

La siguiente figura muestra el cableado.

Conexión del sensor de presión de aire MS5611 a Arduino

Una vez que su módulo esté conectado al Arduino, ¡es hora de escribir código!

Instalación de biblioteca

Para comenzar a leer los datos del sensor, debe instalar lo siguiente biblioteca MS5611. Está disponible en el administrador de la biblioteca Arduino.

Para instalar la biblioteca, navegue hasta Bosquejo > Incluir biblioteca > Administrar bibliotecas… Espere a que el administrador de la biblioteca descargue el índice de la biblioteca y actualice la lista de bibliotecas instaladas.

Conexión del sensor de presión de aire MS5611 a Arduino

Filtra tu búsqueda escribiendo “ms5611' e instalar la biblioteca.

Conexión del sensor de presión de aire MS5611 a Arduino

ADVERTENCIA EXPERIMENTAL:

Rob Tillart también escribió MS5611_SPI (una versión SPI experimental de la biblioteca) para comunicarse con el MS5611 a través de la interfaz SPI. Pero desafortunadamente, descubrió que seleccionar SPI como protocolo de alguna manera causaba calentamiento interno, lo que resultaba en lecturas de temperatura falsas. Es por eso que solo cubriremos la interfaz I2C en nuestro tutorial.

Código Arduino: lectura de presión y temperatura

A continuación se muestra un boceto básico de Arduino. Continúe y cárguelo en su Arduino. En el monitor de serie deberías ver la presión y la temperatura.

#include "MS5611.h"

MS5611 MS5611(0x77);

void setup() {
  Serial.begin(115200);
  while(!Serial);

  if (!MS5611.begin()) {
    Serial.println("MS5611 not found, check wiring!");
    while (1);
  }
}

void loop() {
  MS5611.read();
  Serial.print("Temperature: ");
  Serial.print(MS5611.getTemperature(), 2);
  Serial.print("tPressure: ");
  Serial.print(MS5611.getPressure(), 2);
  Serial.println();
  delay(1000);
}

Tenga en cuenta que deberá configurar su monitor serie a una velocidad de 115200 baudios para probar el boceto.

Verá muchos datos que muestran valores de presión y temperatura. Mueva su sensor y observe cómo cambian los datos.

Conexión del sensor de presión de aire MS5611 a Arduino

Explicación del código:

El código es bastante simple. Al principio, MS5611.h La biblioteca se integra y se crea un objeto en el espacio global. MS5611 MS5611(0x77). Tenga en cuenta que el objeto se crea con la dirección I2C como parámetro.

#include <Wire.h>

MS5611 MS5611(0x77);

En la configuración inicializamos la comunicación serie con el PC y la llamamos. begin() Función.

El MS5611.begin() La función inicializa la interfaz I2C y verifica si la ID del chip es correcta. Luego, el chip se reinicia mediante un reinicio por software y, después de despertarse, espera a que se calibre el sensor.

void setup() {
  Serial.begin(115200);
  while(!Serial);

  if (!MS5611.begin()) {
    Serial.println("MS5611 not found, check wiring!");
    while (1);
  }
}

Lo llamamos en el bucle MS5611.read() Función para realizar una lectura. Una vez hecho esto, podemos acceder a los métodos del objeto (MS5611) usando el operador punto.

MS5611.getTemperatura() devuelve el valor de temperatura.

MS5611.getPresión() devuelve el valor de la presión del aire.

void loop() {
  MS5611.read();
  Serial.print("Temperature: ");
  Serial.print(MS5611.getTemperature(), 2);
  Serial.print("tPressure: ");
  Serial.print(MS5611.getPressure(), 2);
  Serial.println();
  delay(1000);
}
Error 403 The request cannot be completed because you have exceeded your quota. : quotaExceeded

Conexión del sensor de presión de aire MS5611 a Arduino

Si deseas conocer la altitud a la que llegó tu avión RC, la elevación del paso de montaña por el que estás conduciendo, o qué tan alto llegaste en tu última caminata con tus amigos; es posible que el económico sensor/barómetro de presión MS5611 pueda satisfacer tus necesidades.

Descripción del Hardware

En el corazón del módulo se encuentra un sensor de presión barométrica pequeño, extremadamente rápido, preciso, de bajo consumo, y bajo ruido, de MEAS Switzerland – MS5611.

  • Rango de medición de presión barométrica de 10 mbar a 1200 mbar con una precisión absoluta de ±1.5 mbar en el rango de presión de 450 a 1100 mbar.
  • Resolución de altitud de 0.012 mbar, aproximadamente 10 cm (4″) de altitud.
  • Sensor de temperatura en chip con rango de -40˚C a +85˚C y precisión de ±0.8˚C.

Requisitos de energía

El módulo viene con un regulador de voltaje preciso MIC5205 de 3.3V y un traductor de nivel de voltaje, por lo que puedes usarlo con tu microcontrolador favorito de 3.3V o 5V sin preocupaciones.

  • Consumo de corriente inferior a 1.4mA durante las mediciones y menos de 0.15µA en modo de espera.

Interfaces digitales

El MS5611 se comunica a través de I2C o SPI, y el pin PS (Protocol Select) determina la interfaz operativa.

  • El MS5611 usa la interfaz I2C para la comunicación con Arduino.
  • Para habilitar la interfaz SPI, conecta el pin PS a tierra.

Especificaciones técnicas

Las especificaciones completas incluyen:

  • Fuente de alimentación: 3.3V a 5.5V
  • Consumo de corriente: ~1.4mA (durante mediciones) ~0.15µA (en modo de espera)
  • Rango de medición de presión: 10 a 1200 mbar
  • Precisión absoluta de presión: ±1.5 mbar
  • Resolución ADC: 24 bits
  • Rango de temperatura: -40˚C a +85˚C
  • Precisión de temperatura: ±0.8˚C

Conexiones del módulo MS5611 a Arduino

Para comenzar a utilizar el módulo con tu Arduino, sigue los pasos de conexión y el código proporcionado en este tutorial:

Detalles de la conexión:

  • Pin de alimentación: VCC se conecta a la fuente de alimentación de 5V de tu Arduino, GND es la tierra común.
  • Pines lógicos de SPI: SCL, SDA, CSB, y SDO son los pines de comunicación SPI.
  • Pines lógicos de I2C: SCL, SDA, y CSB son los pines de comunicación I2C.

Para obtener el tutorial completo con el código y más detalles sobre la conexión, consulta la fuente original.

1 comentario en «Conexión del sensor de presión de aire MS5611 a Arduino»

Deja un comentario