Home CodeArduino micro:bit and MPL3115A2 absolute pressure sensor example

micro:bit and MPL3115A2 absolute pressure sensor example

by shedboy71

The MPL3115A2 is a compact, piezoresistive, absolute pressure sensor with an I2C digital interface. MPL3115A2 has a wide operating range of 20 kPa to 110 kPa, a range that covers all surface elevations on earth. The MEMS is temperature compensated utilizing an on-chip temperature sensor. The pressure and temperature data is fed into a high resolution ADC to provide fully compensated and digitized outputs for pressure in Pascals and temperature in °C.

The compensated pressure output can then be converted to altitude, utilizing the formula stated in Section 9.1.3 “Pressure/altitude” provided in meters.The internal processing in MPL3115A2 removes compensation and unit conversion load from the system MCU, simplifying system design

Parts List

Schematics/Layout

microbit and MPL3115A2

microbit and MPL3115A2

Code

Again we use a library  –https://github.com/adafruit/Adafruit_MPL3115A2_Library

[codesyntax lang=”cpp”]

#include <Wire.h>
#include <Adafruit_MPL3115A2.h>

// Power by connecting Vin to 3-5V, GND to GND
// Uses I2C - connect SCL to the SCL pin, SDA to SDA pin
// See the Wire tutorial for pinouts for each Arduino
// http://arduino.cc/en/reference/wire
Adafruit_MPL3115A2 baro = Adafruit_MPL3115A2();

void setup() 
{
  Serial.begin(9600);
  Serial.println("Adafruit_MPL3115A2 test!");
}

void loop() 
{
  if (! baro.begin()) 
  {
  Serial.println("Couldnt find sensor");
  return;
  

  float pascals = baro.getPressure();
  // Our weather page presents pressure in Inches (Hg)
  // Use http://www.onlineconversion.com/pressure.htm for other units
  Serial.print(pascals/3377); Serial.println(" Inches (Hg)");
  
  float altm = baro.getAltitude();
  Serial.print(altm); Serial.println(" meters");
  
  float tempC = baro.getTemperature();
  Serial.print(tempC); Serial.println("*C");
  
  delay(250);
  }
}

[/codesyntax]

 

Output

Open the serial monito

Adafruit_MPL3115A2 test!
30.17 Inches (Hg)
-48.25 meters
35.75*C
30.17 Inches (Hg)
-47.81 meters
35.63*C
30.17 Inches (Hg)
-48.00 meters
35.56*C
30.17 Inches (Hg)
-47.81 meters
35.44*C

 

Links

https://www.nxp.com/docs/en/data-sheet/MPL3115A2.pdf

MPL3115A2 I2C Intelligent Temperature Pressure Altitude Sensor V2.0 for Arduino

You may also like

Adblock Detected

Please support us by disabling your AdBlocker extension from your browsers for our website.