Arduino Nano - MPL3115A2 altímetro de precisión Sensor Tutorial (3 / 4 paso)

Paso 3: código:

El código de arduino para MPL3115A2 puede descargarse desde el repositorio de github-ControlEverythingCommunity

Aquí está el enlace para el mismo:

https://github.com/ControlEverythingCommunity/MPL3...

La hoja de datos de MPL3115A2 se puede encontrar aquí:

https://S3.amazonaws.com/controleverything.Media/c...

Incluimos la biblioteca Wire.h para facilitar la comunicación I2c del sensor con la placa Arduino.

También puede copiar el código desde aquí, se da como sigue:

Distribuido con una licencia de libre albedrío.

Se usa cualquier forma desea, beneficio o libre, siempre cabe en las licencias de sus obras anexas.

MPL3115A2

Este código está diseñado para trabajar con el módulo de Mini de I2C MPL3115A2_I2CS de ControlEverything.com.

https://www.controleverything.com/content/Analog-...

#include < Wire.h >

Dirección I2C MPL3115A2 es 0x60(96)

#define Addr 0x60

void setup()

{

Inicializar la comunicación I2C

Wire.Begin();

Inicializar la comunicación Serial, juego velocidad en baudios = 9600

Serial.Begin(9600);

Iniciar transmisión I2C

Wire.beginTransmission(Addr);

Registro de control Select

Wire.Write(0x26);

Modo activo, OSR = 128, modo de altímetro

Wire.Write(0xB9);

Detener la transmisión I2C

Wire.endTransmission();

Iniciar transmisión I2C

Wire.beginTransmission(Addr);

Registro de configuración de datos Seleccione

Wire.Write(0x13);

Datos listo evento habilitado para altitud, presión, temperatura

Wire.Write(0x07);

Detener la transmisión I2C

Wire.endTransmission();

Delay(300);

}

void loop()

{

unsigned int datos [6];

Iniciar transmisión I2C

Wire.beginTransmission(Addr);

Registro de control Select

Wire.Write(0x26);

Modo activo, OSR = 128, modo de altímetro

Wire.Write(0xB9);

Detener la transmisión I2C

Wire.endTransmission();

Delay(1000);

Iniciar transmisión I2C

Wire.beginTransmission(Addr);

Registro de datos Seleccione

Wire.Write(0x00);

Detener la transmisión I2C

Wire.endTransmission();

Solicitud de 6 bytes de datos

Wire.requestFrom (Addr, 6);

Leer 6 bytes de datos de la dirección 0x00(00)

Estado, tHeight msb1, tHeight msb, lsb tHeight, temp msb, lsb temp

Si (Wire.available() == 6)

{

datos [0] = Wire.read();

datos [1] = Wire.read();

datos [2] = Wire.read();

datos [3] = Wire.read();

datos [4] = Wire.read();

datos [5] = Wire.read();

}

Convertir los datos en 20 bits

int tHeight = (((largo) (datos [1] * 65536 (larga)) + (datos [2] * 256) + (datos [3] & 0xF0)) / 16);

int temp = ((datos [4] * 256) + (datos [5] & 0xF0)) / 16;

altura del flotador = tHeight / 16.0;

flotador cTemp = (temp / 16.0);

flotador fTemp = cTemp * 1.8 + 32;

Iniciar transmisión I2C

Wire.beginTransmission(Addr);

Registro de control Select

Wire.Write(0x26);

Modo activo, OSR = 128, modalidad de barómetro

Wire.Write(0x39);

Detener la transmisión I2C

Wire.endTransmission();

Delay(1000);

Iniciar transmisión I2C

Wire.beginTransmission(Addr);

Registro de datos Seleccione

Wire.Write(0x00);

Detener la transmisión I2C

Wire.endTransmission();

Solicitud de 4 bytes de datos

Wire.requestFrom (Addr, 4);

Lee 4 bytes de datos

Estado, pres msb1, pres msb, lsb de pres

Si (Wire.available() == 4)

{

datos [0] = Wire.read();

datos [1] = Wire.read();

datos [2] = Wire.read();

datos [3] = Wire.read();

}

Convertir los datos en 20 bits

Presión larga = (((largos) datos [1] * 65536 (larga)) + (datos [2] * 256) + (datos [3] & 0xF0)) / 16;

flotador de presión = (pres / 4.0) / 1000.0;

Salida de datos monitor serial

Serial.Print ("altura:");

Serial.Print(Altitude);

Serial.println ("m");

Serial.Print ("presión:");

Serial.Print(Pressure);

Serial.println ("kPa");

Serial.Print ("temperatura en grados Celsius:");

Serial.Print(cTemp);

Serial.println ("C");

Serial.Print ("temperatura en grados Fahrenheit:");

Serial.Print(fTemp);

Serial.println ("F");

Delay(500);

}

Artículos Relacionados

Frambuesa Pi - MPL3115A2 altímetro de precisión Sensor Python Tutorial

Frambuesa Pi - MPL3115A2 altímetro de precisión Sensor Python Tutorial

El MPL3115A2 emplea un sensor de presión MEMS con una interfaz I2C para proporcionar los datos exactos de la presión/altitud y la temperatura. Las salidas del sensor son digitalizadas por un ADC de 24 bits de alta resolución. Procesamiento interno el
Frambuesa Pi - MPL3115A2 altímetro de precisión Sensor Java Tutorial

Frambuesa Pi - MPL3115A2 altímetro de precisión Sensor Java Tutorial

El MPL3115A2 emplea un sensor de presión MEMS con una interfaz I2C para proporcionar los datos exactos de la presión/altitud y la temperatura. Las salidas del sensor son digitalizadas por un ADC de 24 bits de alta resolución. Procesamiento interno el
Arduino Nano - HTS221 de humedad relativa y temperatura Sensor Tutorial

Arduino Nano - HTS221 de humedad relativa y temperatura Sensor Tutorial

HTS221 es un sensor digital capacitivo compactado ultra para humedad relativa y temperatura. Incluye un elemento de detección y una señal mixta aplicación específica circuit(ASIC) integrado para proporcionar la información de la medida a través de in
Partícula fotón - Tutorial de Sensor altímetro de precisión MPL3115A2

Partícula fotón - Tutorial de Sensor altímetro de precisión MPL3115A2

El MPL3115A2 emplea un sensor de presión MEMS con una interfaz I2C para proporcionar los datos exactos de la presión/altitud y la temperatura. Las salidas del sensor son digitalizadas por un ADC de 24 bits de alta resolución. Procesamiento interno el
Arduino Nano: Temperatura y humedad DHT11/DHT21/DHT22 Sensor módulo Visuino

Arduino Nano: Temperatura y humedad DHT11/DHT21/DHT22 Sensor módulo Visuino

DTH11 / DTH21 / DTH22 y AM2301son sensores de temperatura y humedad Arduino combinados muy populares.En este Instructable, voy a mostrarles, lo fácil que es programar el Arduino para utilizarlos, con Visuino - un ambiente de desarrollo gráfico fácil
Arduino AMS5812_0050-D-B presión y temperatura Sensor Tutorial

Arduino AMS5812_0050-D-B presión y temperatura Sensor Tutorial

AMS5812 Sensor de presión amplificados con analógicas y salidas digitales es un sensor de alta precisión con una salida de voltaje analógico y digital I2C interfaz. Combina un piezorresistivo elemento de detección con un elemento para su operación de
Arduino Nano con DHT11, RTC DS1307 y LCD 16 x 2

Arduino Nano con DHT11, RTC DS1307 y LCD 16 x 2

Hola. Este es mi primer Instructable, así que espero que va a estar bien.Este es mi proyecto de Arduino Nano con LCD I2C Junta, RTC DS1307 y sensor DHT11.Para este proyecto usé Arduino Nano, RTC DS1307 reloj tablero, tablero del sensor DHT11, 16 x 2
Un compacto, altímetro de Arduino para aviones RC

Un compacto, altímetro de Arduino para aviones RC

Por favor voten por este Instructable si crees que se merece! ¡ Gracias!El Altímetro Ultimate es un altímetro de Arduino controlado súper compacto, capaz de medir la altura con una precisión de 0,3 metros y guardar los valores mayores y menor que ha
Arduino Nano: Sensor acelerómetro giroscopio MPU9250 brújula I2C con Visuino

Arduino Nano: Sensor acelerómetro giroscopio MPU9250 brújula I2C con Visuino

MPU9250es uno de los más avanzados sensores de tamaño pequeño acelerómetro, giroscopio y brújula actualmente disponibles combinados. Tienen muchas características avanzadas, incluyendo filtrado de paso bajo, detección de movimiento e incluso un proce
HMC5883L magnetómetro con desplazador del nivel en el arduino nano

HMC5883L magnetómetro con desplazador del nivel en el arduino nano

Esto te llevará sensor brújula orientación en 3 dimensiones en sus proyectos de arduino por menos de $4!¿Sabías que: estas cosas son tan sensibles, se pueden utilizar para detectar la posición de alta precisión con 6 grados de libertad? Adjunto uno p
Independiente Arduino altímetro

Independiente Arduino altímetro

Aquí es un altímetro independiente trabajando con Arduino que se puede utilizar en proyectos RC, senderismo, coches... donde quieras :)Demuestra en la primera pantalla de la altitud, la temperatura y la presión de aire, y en el segundo, llegó a la al
Arduino Nano - Tutorial de 3 ejes acelerómetro Digital de 12 bits/8 bits MMA8452Q

Arduino Nano - Tutorial de 3 ejes acelerómetro Digital de 12 bits/8 bits MMA8452Q

El MMA8452Q es un acelerómetro micro smart, baja potencia, tres ejes, capacitiva, con 12 bits de resolución. Opciones programables de usuario flexibles cuentan con la ayuda de funciones incorporadas en el acelerómetro, configurable a dos pines de int
Arduino Nano: Con DS1820/DS18S20 Maxim un termómetro Sensor módulo

Arduino Nano: Con DS1820/DS18S20 Maxim un termómetro Sensor módulo

He recibido muchas peticiones para tutorial de termómetro OneWire Maxim DS1820/DS18S20 , así que aquí está el primer tal Instructable.En la siguiente Instructables demuestro cómo trabajar con varios termómetros conectados al mismo pin, así como obten
Arduino Nano: Leer múltiples DS1820/DS18S20 Maxim un alambre Termómetros con Visuino

Arduino Nano: Leer múltiples DS1820/DS18S20 Maxim un alambre Termómetros con Visuino

Una de las razones que los Termómetros DS18B20 OneWire Maxim DS1820 DS18S20 / / son tan populares es que varios termómetros pueden ser conectados e incluso funciona con sólo 2 hilos. Ya postee Instructables en cómo conectar un termómetro y cómo obten