Air Flow click
Air Flow Click is a compact add-on board that contains a flow-based 2-in-1 differential pressure sensor. This board features the LHDULTRAM012UB3, LHD ULTRA series micro-flow differential pressure sensor from TE Connectivity Measurement Specialties.
click Product page
Click library
- Author : Luka Filipovic
- Date : May 2021.
- Type : I2C/SPI type
Software Support
We provide a library for the AirFlow Click as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.
Package can be downloaded/installed directly from NECTO Studio Package Manager(recommended way), downloaded from our LibStock™ or found on Mikroe github account.
Library Description
This library contains API for AirFlow Click driver.
Standard key functions :
airflow_cfg_setup
Config Object Initialization function.
void airflow_cfg_setup(airflow_cfg_t *cfg)
Air Flow configuration object setup function.
Air Flow Click configuration object.
Definition airflow.h:200
airflow_init
Initialization function.
err_t airflow_init(airflow_t *ctx, airflow_cfg_t *cfg)
Air Flow initialization function.
Air Flow Click context object.
Definition airflow.h:168
airflow_default_cfg
Click Default Configuration function.
err_t airflow_default_cfg(airflow_t *ctx)
Air Flow default configuration function.
Example key functions :
airflow_reset_device
Reset device.
void airflow_reset_device(airflow_t *ctx)
Reset device.
airflow_get_differential_pressure
Reads differential pressure.
err_t airflow_get_differential_pressure(airflow_t *ctx, float *pressure)
Reads differential pressure.
airflow_get_atmospheric_pressure
Reads atmospheric pressure and temperature.
err_t airflow_get_atmospheric_pressure(airflow_t *ctx, float *pressure, float *temperature)
Reads atmospheric pressure and temperature.
Example Description
This example showcases ability for device to read differential
pressure, atmospheric pressure and ambient temperature.
The demo application is composed of two sections :
Application Init
Initialize host communication modules (UART, I2C/SPI). Read
electric signature data from device and logs it to terminal.
{
log_cfg_t log_cfg;
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
Delay_ms ( 100 );
log_info( &logger, " Application Init " );
if ( ( init_flag == I2C_MASTER_ERROR ) || ( init_flag == SPI_MASTER_ERROR ) )
{
log_error( &logger, " Application Init Error. " );
log_info( &logger, " Please, run program again... " );
for ( ; ; );
}
{
log_error( &logger, " Read" );
log_info( &logger, " Please, run program again... " );
for ( ; ; );
}
else
{
log_printf( &logger, "Firmware version: %d.%d\r\n", ( int16_t )airflow.major_fw_ver, ( int16_t )airflow.minor_fw_ver );
log_printf( &logger, "Part number: " );
for ( uint8_t pn = 0; pn < 11; pn++ )
log_printf( &logger, "%c", airflow.part_number[ pn ] );
log_printf( &logger, "\r\n" );
log_printf( &logger, "Lot number: " );
for ( uint8_t pn = 0; pn < 7; pn++ )
log_printf( &logger, "%c", airflow.lot_number[ pn ] );
log_printf( &logger, "\r\n" );
log_printf( &logger, "Pressure range: %d\r\n", airflow.pressure_range );
log_printf( &logger, "Output type: %c\r\n", airflow.output_type );
log_printf( &logger, "Scale factor: %d\r\n", airflow.scale_factor );
log_printf( &logger, "Calibration ID: %s\r\n", airflow.calibration_id );
log_printf( &logger, "Week: %d\r\n", ( int16_t )airflow.week );
log_printf( &logger, "Year: %d\r\n", ( int16_t )airflow.year );
log_printf( &logger, "Sequence number: %d\r\n", airflow.sequence_number );
}
Delay_ms ( 1000 );
Delay_ms ( 1000 );
log_info( &logger, " Application Task " );
}
#define AIRFLOW_MAP_MIKROBUS(cfg, mikrobus)
MikroBUS pin mapping.
Definition airflow.h:134
void application_init(void)
Definition main.c:30
Application Task
Reads differential pressure in Pa, atmospheric pressure in mBar
and ambient temperature in C every 500ms and logs read data.
{
float pressure_data, temperature_data;
log_printf( &logger, "Differential pressure[Pa]: %.2f\r\n", pressure_data );
log_printf( &logger, "Atmospheric pressure[mBar]: %.2f\r\nTemperature[degC]: %.2f\r\n", pressure_data, temperature_data );
log_printf( &logger, "***********************************************************\r\n" );
Delay_ms ( 500 );
}
void application_task(void)
Definition main.c:102
The full application code, and ready to use projects can be installed directly from NECTO Studio Package Manager(recommended way), downloaded from our LibStock™ or found on Mikroe github account.
Other Mikroe Libraries used in the example:
- MikroSDK.Board
- MikroSDK.Log
- Click.AirFlow
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. UART terminal is available in all MikroElektronika compilers.