

The MPL115A1 and MPL115A2 are miniature digital barometers designed for accurate pressure and temperature measurements. These sensors are compact, low-power, and ideal for applications requiring precise atmospheric pressure readings. The MPL115A1 communicates via the SPI protocol, while the MPL115A2 uses the I2C protocol, making them versatile for integration into various systems.








| Parameter | Value |
|---|---|
| Operating Voltage | 2.375V to 5.5V |
| Operating Temperature | -40°C to +85°C |
| Pressure Range | 50 kPa to 115 kPa |
| Pressure Resolution | 0.15 kPa |
| Temperature Accuracy | ±1°C |
| Communication Protocol | SPI (MPL115A1), I2C (MPL115A2) |
| Power Consumption | 5 µA (standby), 6 mA (active) |
| Pin Name | Pin Number | Description |
|---|---|---|
| VDD | 1 | Power supply (2.375V to 5.5V) |
| GND | 2 | Ground |
| CSB | 3 | Chip Select (active low) |
| SCLK | 4 | Serial Clock Input |
| MOSI | 5 | Master Out, Slave In |
| MISO | 6 | Master In, Slave Out |
| Pin Name | Pin Number | Description |
|---|---|---|
| VDD | 1 | Power supply (2.375V to 5.5V) |
| GND | 2 | Ground |
| SDA | 3 | Serial Data Line |
| SCL | 4 | Serial Clock Line |
| NC | 5 | Not Connected |
#include <Wire.h>
// MPL115A2 I2C address
#define MPL115A2_ADDRESS 0x60
// Register addresses
#define START_CONVERSION 0x12
#define PRESSURE_MSB 0x00
#define PRESSURE_LSB 0x01
#define TEMP_MSB 0x02
#define TEMP_LSB 0x03
void setup() {
Wire.begin(); // Initialize I2C
Serial.begin(9600); // Initialize serial communication
}
void loop() {
// Start pressure and temperature conversion
Wire.beginTransmission(MPL115A2_ADDRESS);
Wire.write(START_CONVERSION);
Wire.endTransmission();
delay(5); // Wait for conversion to complete
// Read pressure and temperature data
Wire.beginTransmission(MPL115A2_ADDRESS);
Wire.write(PRESSURE_MSB);
Wire.endTransmission();
Wire.requestFrom(MPL115A2_ADDRESS, 4);
uint8_t pressureMSB = Wire.read();
uint8_t pressureLSB = Wire.read();
uint8_t tempMSB = Wire.read();
uint8_t tempLSB = Wire.read();
// Combine MSB and LSB for pressure and temperature
uint16_t pressureRaw = (pressureMSB << 8) | pressureLSB;
uint16_t tempRaw = (tempMSB << 8) | tempLSB;
// Convert raw data to human-readable values (example calculation)
float pressure = pressureRaw / 64.0; // Example scaling factor
float temperature = tempRaw / 64.0; // Example scaling factor
// Print results
Serial.print("Pressure: ");
Serial.print(pressure);
Serial.println(" kPa");
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" °C");
delay(1000); // Wait 1 second before next reading
}
No Data from Sensor:
Incorrect Pressure or Temperature Readings:
Communication Errors:
By following this documentation, you can effectively integrate the MPL115A1 or MPL115A2 into your project and achieve accurate pressure and temperature measurements.