Besides a very low error margin of only 1.5% across the full scale span (including errors caused by the offset, hysteresis, non-linearity, and other factors…), the sensor also features long-term stability (±0.25% FSS), low power consumption, very low count of additional components (a single bypass capacitor for supply filtering, in most cases), making it very cheap and simple solution which can be used to measure the gauge pressure in the range from 0 to 600 mbar. Pressure 12 click is a very well suited for the development and prototyping of many different applications based on the gauge pressure measurement, including HVAC systems, pneumatic control, and regulation, air/gas pressure monitoring, but also some low-power IoT applications, such as weather IoT nodes, and similar.
How does it work?
Pressure 12 click is based on the ABP series gauge pressure sensor, labeled as ABPLLNN600MGAA3, made by Honeywell. The entire ABP series sensors are very similar in design, so minor differences specific for a particular sensor are actually encoded into its label. The ABP series datasheet offers a detailed explanation of each code of the label. The specific sensor used on the Pressure 12 click is a piezoresistive silicon pressure sensor, which can be used for non-corrosive and non-ionic dry gas media and should not be exposed to moisture and corrosion.
The sensor itself is based on a piezoresistive silicon membrane sensitive to pressure, which is backed up by an ASIC. The ASIC applies temperature compensation and calibration to the signal. The ratiometric voltage at the output pin is updated once per one ms (1kHz), allowing it to be used either by the A/D converter of the host MCU or directly within the control feedback loop, ensuring the least possible latency.
The thermal compensation covers the range between 0⁰C and 50 ⁰C, where the sensor has the smallest TEB value. The datasheet introduces TEB (Total Error Band) term as the most realistic representation of the sensor’s accuracy, taking many factors into an account, including errors caused by the offset, hysteresis, non-linearity, and other factors… Honeywell uses the TEB to illustrate the overall sensor’s accuracy, since no single parameter can exist without being influenced by some other parameters (thermal effect on the offset, hysteresis, just to name few). This helps to paint a more realistic picture of the sensor’s performance.
The sensor contains a single axial barbless port, adequate for secure interfacing with various pipes, hoses or gas-filled containers of some pressurized system which needs to be controlled or monitored. No barbed port is required for this sensor, as the maximum gauge pressure, it can measure goes up to 600mbar. The voltage at the output changes proportionally with the applied pressure. The ABP series datasheet provides a simple conversion formula, which can be used to calculate the pressure value for a given output voltage. This formula is simple to be calculated by the firmware that runs on the host MCU, as the output voltage is already conditioned by the sensor’s ASIC.
Since the sensor uses only an analog output voltage, which changes proportionally with the applied pressure (as described previously), there are no setup registers, or any user-configurable parameters. However, the Click board™ is supported by a mikroSDK compatible library with functions that allow using an internal ADC module of the MCU, and an example that demonstrates their use. The demo example utilizes the aforementioned conversion formula to output pressure value based on the sensor’s output voltage.
Specifications
Type
Pressure
Applications
Perfect for the development and prototyping of many different applications based on the gauge pressure measurement, including HVAC systems, pneumatic control, and regulation, air/gas pressure monitoring, but also some low-power IoT applications, such as weather IoT nodes, and similar
On-board modules
ABPLLNN600MGAA3, by Honeywell
Key Features
Low error margin of 1.5% across the full-scale span (including errors caused by the offset, hysteresis, non-linearity, and other factors…), excellent long-term stability, low power consumption, low count of additional components required, can be used in the range from 0 to 600 mbar
Interface
Analog
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 Pressure 12 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 |
Pressure 12 click electrical specifications
Description | Min | Typ | Max | Unit |
---|---|---|---|---|
Pressure range | 0 | - | 600 | mbar |
Operating temperature range | -40 | – | +85 | ⁰C |
Calibrated temperature range | 0 | - | +50 | ⁰C |
Output voltage update frequency | – | 1 | – | kHz |
Software support
We provide a library for the Pressure 12 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 contains all the necessary functions for converting ADC values to real voltages and pressure values.
Key functions:
float pressure12_getPressure(uint16_t adcValue)
– Convert ADC value to Pressure data in mBar.float pressure12_getVoltage(uint16_t adcValue)
– Convert ADC value to Voltage in mV.void pressure12_setMaxVoltage(float volt)
– Sets max output voltage on the AN pin.
Examples description
The application is composed of three sections :
- System Initialization – Initializes LOG for logging data.
- Application Initialization – ADC init.
- Application Task – Reads ADC value, Convert ADC data to Voltage[mV] on the AN pin and convert to Pressure data in mBar. All data logs to the USBUART every 1sec.
void applicationTask() { uint16_t ADC_value; float Voltage; float Pressure; char demoText[ 50 ]; ADC_value = pressure12_adcRead(); Voltage = pressure12_getVoltage(ADC_Value); Pressure = pressure12_getPressure(ADC_Value); WordToStr(ADC_value, demoText); mikrobus_logWrite(" ADC value: ", _LOG_TEXT); mikrobus_logWrite(demoText, _LOG_LINE); FloatToStr(Voltage, demoText); mikrobus_logWrite(" Voltage: ", _LOG_TEXT); mikrobus_logWrite(demoText, _LOG_TEXT ); mikrobus_logWrite(" mV", _LOG_LINE ); FloatToStr(Pressure, demoText); mikrobus_logWrite(" Pressure: ", _LOG_TEXT); mikrobus_logWrite(demoText, _LOG_TEXT); mikrobus_logWrite(" mBar", _LOG_LINE ); mikrobus_logWrite("--------------------------", _LOG_LINE); Delay_ms( 1000 ); }
The full application code, and ready to use projects can be found on our LibStock page.
Other mikroE Libraries used in the example:
- ADC Library
- Conversion 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.