Measurement Specialties MS5803 topic
- Introduction
- Sensor Datasheet
- Sensor Constructor
- Example Code
- Reference
- Detailed Descriptions
Classes for the Measurement Specialties MS5803 digital preassure sensor.
Introduction
The Measurement Specialties MS5803 is a miniature digital pressure sensor. It comes in several different pressure ranges, with 14 bar being one of the most common. Although this sensor has the option of either I2C or SPI communication, this library only supports I2C. The sensor's I2C address is determined the voltage level of the CSB pin; it will be either 0x76 or 0x77. Breakout boards purchased from Sparkfun are set to 0x76 while those from Northern Widget are variable depending on the model as outlined in their library. To connect two of these sensors to your system, you must ensure they are soldered so as to have different I2C addresses. No more than two can be attached. These sensors should be attached to a 1.7-3.6V power source and the power supply to the sensor can be stopped between measurements.
The lower level communication between the mcu and the MS5803 is handled by the Northern Widget MS5803 library.
Sensor Datasheet
Documentation for the sensor can be found at: https:/
The datasheet is also available here: https:/
Sensor Constructor
Construct a new MeaSpecMS5803 object. The pin on the mcu controlling power to the MS5803 Use -1 if it is continuously powered.
MeaSpecMS5803::
Parameters
powerPin
i2cAddressHex
The I2C address of the MS5803; must be either 0x76 or 0x77. The default value is 0x76.
maxPressure
The maximum pressure of the specific MS5803 in bar. The sensors are maufactured with maximum pressures of 1.1 bar, 1.3 bar, 5 bar, 7 bar, 14 bar, and 30 bar.
measurementsToAverage
The number of measurements to take and average before giving a "final" result from the sensor; optional with a default value of 1.
Example Code
The Measurement Specialties MS5803 is used in the menu a la carte example.
Classes
- class MeaSpecMS5803
- The Sensor sub-class for the Measurement Specialties MS5803 sensor.
- class MeaSpecMS5803_Temp
- The Variable sub-class used for the temperature output from a Measurement Specialties MS5803 digital pressure sensor.
- class MeaSpecMS5803_Pressure
- The Variable sub-class used for the pressure output from a Measurement Specialties MS5803 digital pressure sensor.
Sensor Variable Counts
The number of variables that can be returned by the MS5803
- #define MS5803_NUM_VARIABLES = 2
- Sensor::
_numReturnedValues; the MS5803 can report 2 values. - #define MS5803_INC_CALC_VARIABLES = 0
- Sensor::
_incCalcValues; we don't calculate any additional values.
Sensor Timing
The sensor timing for a Measurement Specialties MS5803
- #define MS5803_WARM_UP_TIME_MS = 10
- Sensor::
_warmUpTime_ms; the MS5803 warms up in 10ms. - #define MS5803_STABILIZATION_TIME_MS = 0
- Sensor::
_stabilizationTime_ms; the MS5803 is stable as soon as it warms up (0ms stabilization). - #define MS5803_MEASUREMENT_TIME_MS = 10
- Sensor::
_measurementTime_ms; the MS5803 takes 10ms to complete a measurement.
Temperature
The temperature variable from a Measurement Specialties MS5803
- Range is -40°C to +85°C
- Accuracy is ±0.8°C
Construct a new MeaSpecMS5803_
MeaSpecMS5803_
Parameters
parentSense
The parent MeaSpecMS5803 providing the result values.
uuid
A universally unique identifier (UUID or GUID) for the variable; optional with the default value of an empty string.
varCode
A short code to help identify the variable in files; optional with a default value of "MeaSpecMS5803Temp".
- #define MS5803_TEMP_RESOLUTION = 2
- Decimals places in string representation; temperature should have 2 - resolution is <0.01°C.
- #define MS5803_TEMP_VAR_NUM = 0
- Sensor variable number; temperature is stored in sensorValues[0].
- #define MS5803_TEMP_VAR_NAME = "temperature"
- Variable name in ODM2 controlled vocabulary; "temperature".
- #define MS5803_TEMP_UNIT_NAME = "degreeCelsius"
- Variable unit name in ODM2 controlled vocabulary; "degreeCelsius" (°C)
- #define MS5803_TEMP_DEFAULT_CODE = "MeaSpecMS5803Temp"
- Default variable short code; "MeaSpecMS5803Temp".
Pressure
The pressure variable from a Measurement Specialties MS5803
- Range is 0 to 14 bar
- Accuracy between 0 and +40°C is:
- 14ba: ±20mbar
- 2ba: ±1.5mbar
- 1ba: ±1.5mbar
- Long term stability is:
- 14ba: -20 mbar/yr
- 2ba: -1 mbar/yr
- Resolution is: (at oversampling ratios: 256 / 512 / 1024 / 2048 / 4096, respectively))
- 14ba: 1 / 0.6 / 0.4 / 0.3 / 0.2 mbar (where 1 mbar = 100 pascals)
- 2ba: 0.13 / 0.084 / 0.054 / 0.036 / 0.024
- 1ba: 0.065 / 0.042 / 0.027 / 0.018 / 0.012
- MS5803_
PRESSURE_ RESOLUTION = 3
Construct a new MeaSpecMS5803_
MeaSpecMS5803_
Parameters
parentSense
The parent MeaSpecMS5803 providing the result values.
uuid
A universally unique identifier (UUID or GUID) for the variable; optional with the default value of an empty string.
varCode
A short code to help identify the variable in files; optional with a default value of th a default value of MeaSpecMS5803Pressure
- #define MS5803_PRESSURE_RESOLUTION = 3
- Decimals places in string representation; pressure should have 3.
- #define MS5803_PRESSURE_VAR_NUM = 1
- Sensor variable number; pressure is stored in sensorValues[1].
- #define MS5803_PRESSURE_VAR_NAME = "barometricPressure"
- Variable name in ODM2 controlled vocabulary; "barometricPressure".
- #define MS5803_PRESSURE_UNIT_NAME = "millibar"
- Variable unit name in ODM2 controlled vocabulary; "millibar".
- #define MS5803_PRESSURE_DEFAULT_CODE = "MeaSpecMS5803Pressure"
- Default variable short code; "MeaSpecMS5803Pressure".
Define documentation
#define MS5803_NUM_VARIABLES = 2
#include <src/sensors/MeaSpecMS5803.h>
Sensor::
#define MS5803_INC_CALC_VARIABLES = 0
#include <src/sensors/MeaSpecMS5803.h>
Sensor::
#define MS5803_WARM_UP_TIME_MS = 10
#include <src/sensors/MeaSpecMS5803.h>
Sensor::
#define MS5803_STABILIZATION_TIME_MS = 0
#include <src/sensors/MeaSpecMS5803.h>
Sensor::
#define MS5803_MEASUREMENT_TIME_MS = 10
#include <src/sensors/MeaSpecMS5803.h>
Sensor::
- Sensor takes about 0.5 / 1.1 / 2.1 / 4.1 / 8.22 ms to respond at oversampling ratios: 256 / 512 / 1024 / 2048 / 4096, respectively.
#define MS5803_TEMP_RESOLUTION = 2
#include <src/sensors/MeaSpecMS5803.h>
Decimals places in string representation; temperature should have 2 - resolution is <0.01°C.
#define MS5803_TEMP_VAR_NUM = 0
#include <src/sensors/MeaSpecMS5803.h>
Sensor variable number; temperature is stored in sensorValues[0].
#define MS5803_TEMP_VAR_NAME = "temperature"
#include <src/sensors/MeaSpecMS5803.h>
Variable name in ODM2 controlled vocabulary; "temperature".
#define MS5803_TEMP_UNIT_NAME = "degreeCelsius"
#include <src/sensors/MeaSpecMS5803.h>
Variable unit name in ODM2 controlled vocabulary; "degreeCelsius" (°C)
#define MS5803_TEMP_DEFAULT_CODE = "MeaSpecMS5803Temp"
#include <src/sensors/MeaSpecMS5803.h>
Default variable short code; "MeaSpecMS5803Temp".
#define MS5803_PRESSURE_RESOLUTION = 3
#include <src/sensors/MeaSpecMS5803.h>
Decimals places in string representation; pressure should have 3.
#define MS5803_PRESSURE_VAR_NUM = 1
#include <src/sensors/MeaSpecMS5803.h>
Sensor variable number; pressure is stored in sensorValues[1].
#define MS5803_PRESSURE_VAR_NAME = "barometricPressure"
#include <src/sensors/MeaSpecMS5803.h>
Variable name in ODM2 controlled vocabulary; "barometricPressure".
#define MS5803_PRESSURE_UNIT_NAME = "millibar"
#include <src/sensors/MeaSpecMS5803.h>
Variable unit name in ODM2 controlled vocabulary; "millibar".
#define MS5803_PRESSURE_DEFAULT_CODE = "MeaSpecMS5803Pressure"
#include <src/sensors/MeaSpecMS5803.h>
Default variable short code; "MeaSpecMS5803Pressure".