The pressure sensor is packed in ceramic, water-resistant housing, preventing water or humidity to damage the circuit. Additionally, it is protected from overpressure, allowing it to withstand pressure peaks up to 20x its measurement range. These features make Barometer 2 click a perfect tool for the development of various pressure-based applications, especially when low power consumption is required: portable weather stations, IoT and other battery-operated pressure-related applications, wearables, and similar.
How does it work?
Barometer 2 click features the LPS35HW, an absolute digital output barometer IC in water-resistant package, from STMicroelectronics. It can be used to measure absolute pressure values from 260 – 1260hPa. The sensor can be exposed up to 2MPa of pressure peaks, without causing any permanent damage. However, prolonged exposure to such high pressure can affect the reliability and accuracy of the sensor.
The LPS35HW IC comprises a piezoresistive MEMS and an ASIC. The MEMS consists of a suspended membrane manufactured using a proprietary technology, developed by ST. The piezoresistive elements on the membrane form a Wheatstone bridge. By applying a pressure, the balance of the bridge is disturbed, which causes a proportional voltage to appear on its output. The output of the Wheatstone bridge is then processed by the ASIC, which outputs conditioned and factory-calibrated data over the I2C interface, in 24-bit, two’s complement format.
Barometer 2 click supports the I2C communication interface, allowing it to be used with a wide range of different MCUs. The slave I2C address can be configured by an SMD jumper, labeled as ADD SEL. An SMD jumper is used to set the least significant bit (LSB) of the I2C address. When set to 1, the 7-bit I2C slave address becomes 0b1011101x. If set to 0, the address becomes 0b1011100x. The last digit (x) is the R/W bit.
One of distinctive features of the LPS35HW is a highly configurable FIFO buffer, with 32 slots of 40-bit data, allowing to buffer both pressure and temperature readings. The FIFO buffer can be configured to work in one of several available modes, offering a great flexibility. Along with the extensive interrupt engine which can signal several FIFO-related events over a dedicated INT_DRDY pin, the FIFO buffer can be very useful for writing an optimized MCU firmware.
Besides FIFO-related events, the extensive interrupt engine of the LPS35HW IC can be configured to signal several other events over a dedicated INT_DRDY pin, including events when a programmable low or high threshold level is exceeded, and events when there is a data ready to be read from the output. The INT_DRDY pin of the LPS35HW IC is routed to the mikroBUS™ INT pin. Its active state (active LOW or active HIGH) is freely configurable.
Pressure data at the output is in 24-bit, two’s complement format. Thanks to the highly advanced ASIC, the output is already formatted in physical units, with minimum operations required from the host MCU. Since the sensitivity is 4096 LSB/hPa, the output result should be divided by 4096 in order to obtain the value in hPa units. Temperature data is in 16-bit two’s complement format, and it does not require any conversions. The sensitivity of the temperature sensor is 100 LSB/⁰C so the output result should be divided by 100 in order to obtain the value in ⁰C units. ASIC also offers some other processing functions such as the lowpass filtering of the output data, which helps reducing the inconsistencies due to sudden pressure changes.
This Click Board™ uses both I2C, and it is designed to be operated only with 3.3V logic level. A proper logic voltage level conversion should be performed before the Click board™ is used with MCUs with logic levels of 5V.
Specifications
Type
Pressure
Applications
Barometer 2 click is a perfect tool for development of various pressure-based applications, especially when low power consumption is required: portable weather stations, IoT and other battery-operated pressure-related applications, wearables, and similar.
On-board modules
LPS35HW, an absolute digital output barometer IC in water-resistant package, from STMicroelectronics.
Key Features
Built in ASIC for output data processing, 24-bit conversion, low count of external components required, water-proof casing offers reliability and long-term stability, extensive programmable interrupt engine, advanced FIFO buffer with several operating modes, etc.
Interface
I2C
Feature
No ClickID
Compatibility
mikroBUS™
Click board size
S (28.6 x 25.4 mm)
Input Voltage
3.3V
Pinout diagram
This table shows how the pinout on Barometer 2 Click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
Onboard settings and indicators
Label | Name | Default | Description |
---|---|---|---|
LD1 | PWR | – | Power LED Indicator |
A0 | ADDR | Left | Slave I2C address LSB selection: left position 0, right position 1 |
Barometer 2 click electrical specifications
Description | Min | Typ | Max | Unit |
---|---|---|---|---|
Pressure range | 260 | – | 1260 | hPa |
Operating temperature range | -40 | – | +85 | ˚C |
Output Data rate | 1 | – | 75 | sps |
Software support
We provide a library for the Barometer 2 Click on our LibStock page, as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.
Library Description
The library initializes and defines the I2C bus driver and drivers that offer a choice for writing data in register and reads data form register. The library includes function for read Pressure data in Bar/mBar/hPa/kPa/Torr or mmHg and Temperature data in Celsius/Kelvin or Farenhajt. The user also has the function for reset device and function for read interrupt state.
Key functions:
float barometer2_getPressure(uint8_t pressureIn)
– Pressure data in … (Bar, mBar, hPa, kPa, mmHg and Torr).float barometer2_getTemperature(uint8_t tempIn)
– Temperature data in … (Celsius, Kelvin and Farenhajt).
Examples description
The application is composed of three sections :
- System Initialization – Initilization I2C module and sets INT pin as INPUT
- Application Initialization – Initializes driver init, test communication, software reset and configuration module for measurement
- Application Task – Reads Pressure data in mBar and Temperature data in C. This data logs to USBUART every 1 sec.
- note – Pressure data is available in the following units: mBar, Bar, kPa, Torr and mmHg – Temperature data is available in the following units: Celsius, Kelvin and Farenhajt
void applicationTask() { float Temperature; float Pressure; char demoText[ 50 ]; Temperature = barometer2_getTemperature(_BAROMETER2_TEMPERATURE_IN_CELSIUS); FloatToStr(Temperature, demoText); mikrobus_logWrite(" Temperature : ", _LOG_TEXT); mikrobus_logWrite(demoText, _LOG_LINE); Pressure = barometer2_getPressure(_BAROMETER2_PRESSURE_DATA_IN_mBar); FloatToStr(Pressure, demoText); mikrobus_logWrite(" Pressure : ", _LOG_TEXT); mikrobus_logWrite(demoText, _LOG_LINE); mikrobus_logWrite("--------------------------", _LOG_LINE); Delay_ms( 1000 ); }
Other mikroE Libraries used in the example:
- alarmOn – Generates an alarm sound for charger power ON.
- alarmOff – Generates an alarm sound for charger power OFF.
- alarmFault – Generates an alarm sound for fault condition.
- writeLegend – Writes possible valid commands to the uart terminal.
The full application code, and ready to use projects can be found on our LibStock page.
Other mikroE Libraries used in the example:
- I2C library
- UART Library
- Conversions Library
Additional notes and informations
Depending on the development board you are using, you may need USB UART click, USB UART 2 click or RS232 click to connect to your PC, for development systems with no UART to USB interface available on the board. The terminal available in all MikroElektronika compilers, or any other terminal application of your choice, can be used to read the message.
mikroSDK
This click board is supported with mikroSDK - MikroElektronika Software Development Kit. To ensure proper operation of mikroSDK compliant click board demo applications, mikroSDK should be downloaded from the LibStock and installed for the compiler you are using.
For more information about mikroSDK, visit the official page.