accelqvar  2.1.0.0
Main Page

AccelQvar click

PRVIH_PAR_RECENICA_SA_PRODUCT_PAGE_DA_ISPRATE_CELINU

[click Product page](CLICK_PRODUCT_PAGE_LINK)


Click library

  • Author : Nenad Filipovic
  • Date : Nov 2023.
  • Type : I2C/SPI type

Software Support

We provide a library for the AccelQvar 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 AccelQvar Click driver.

Standard key functions :

Example key functions :

Example Description

This library contains API for the AccelQvar Click driver. The library initializes and defines the I2C and SPI drivers to write and read data from registers and the default configuration for reading the accelerator data and Qvar electrostatic sensor measurement.

The demo application is composed of two sections :

Application Init

The initialization of I2C and SPI module and log UART. After driver initialization, the app sets the default configuration.

void application_init ( void )
{
log_cfg_t log_cfg;
accelqvar_cfg_t accelqvar_cfg;
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, " Application Init " );
// Click initialization.
accelqvar_cfg_setup( &accelqvar_cfg );
ACCELQVAR_MAP_MIKROBUS( accelqvar_cfg, MIKROBUS_1 );
err_t init_flag = accelqvar_init( &accelqvar, &accelqvar_cfg );
if ( ( I2C_MASTER_ERROR == init_flag ) || ( SPI_MASTER_ERROR == init_flag ) )
{
log_error( &logger, " Communication init." );
for ( ; ; );
}
Delay_ms( 100 );
if ( ACCELQVAR_ERROR == accelqvar_default_cfg ( &accelqvar ) )
{
log_error( &logger, " Default configuration." );
for ( ; ; );
}
Delay_ms( 100 );
log_info( &logger, " Application Task " );
log_printf( &logger, "_________________\r\n" );
}

Application Task

This example demonstrates the use of the AccelQvar Click board. Measures and displays acceleration data for the X-axis, Y-axis, and Z-axis [mg] and detects and displays a touch position and the strength of a touch. Results are being sent to the UART Terminal, where you can track their changes.

void application_task ( void )
{
accelqvar_axes_t acc_axis;
if ( ACCELQVAR_OK == accelqvar_get_axes_data( &accelqvar, &acc_axis ) )
{
log_printf( &logger, " Accel X: %.2f mg\r\n", acc_axis.x );
log_printf( &logger, " Accel Y: %.2f mg\r\n", acc_axis.y );
log_printf( &logger, " Accel Z: %.2f mg\r\n", acc_axis.z );
log_printf( &logger, "_________________\r\n" );
}
float qvar = 0;
if ( ACCELQVAR_OK == accelqvar_get_qvar_data( &accelqvar, &qvar ) )
{
if ( abs( qvar ) > ACCELQVAR_THOLD_DETECT_TOUCH )
{
uint8_t touch_strength = ( uint8_t ) ( abs( qvar ) / ACCELQVAR_THOLD_SENS );
log_printf( &logger, " Touch position: " );
if ( qvar < ACCELQVAR_TOUCH_ZERO )
{
log_printf( &logger, " Left\r\n" );
}
else
{
log_printf( &logger, " Right\r\n " );
}
log_printf( &logger, " Strength: " );
while ( touch_strength )
{
log_printf( &logger, "|" );
touch_strength--;
}
log_printf( &logger, "\r\n_________________\r\n" );
Delay_ms( 100 );
}
}
Delay_ms( 1000 );
}

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.AccelQvar

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.


accelqvar_axes_t::y
float y
Definition: accelqvar.h:377
accelqvar_get_axes_data
err_t accelqvar_get_axes_data(accelqvar_t *ctx, accelqvar_axes_t *axes)
AccelQvar get the accel sensor axes function.
ACCELQVAR_OK
@ ACCELQVAR_OK
Definition: accelqvar.h:388
ACCELQVAR_THOLD_SENS
#define ACCELQVAR_THOLD_SENS
Definition: main.c:33
application_task
void application_task(void)
Definition: main.c:78
accelqvar_axes_t::z
float z
Definition: accelqvar.h:378
accelqvar_init
err_t accelqvar_init(accelqvar_t *ctx, accelqvar_cfg_t *cfg)
AccelQvar initialization function.
accelqvar_cfg_setup
void accelqvar_cfg_setup(accelqvar_cfg_t *cfg)
AccelQvar configuration object setup function.
accelqvar_axes_t
AccelQvar Click axes data.
Definition: accelqvar.h:375
ACCELQVAR_TOUCH_ZERO
#define ACCELQVAR_TOUCH_ZERO
Definition: main.c:32
accelqvar_s
AccelQvar Click context object.
Definition: accelqvar.h:326
accelqvar_cfg_t
AccelQvar Click configuration object.
Definition: accelqvar.h:349
ACCELQVAR_THOLD_DETECT_TOUCH
#define ACCELQVAR_THOLD_DETECT_TOUCH
Definition: main.c:31
application_init
void application_init(void)
Definition: main.c:38
ACCELQVAR_MAP_MIKROBUS
#define ACCELQVAR_MAP_MIKROBUS(cfg, mikrobus)
MikroBUS pin mapping.
Definition: accelqvar.h:290
ACCELQVAR_ERROR
@ ACCELQVAR_ERROR
Definition: accelqvar.h:389
accelqvar_axes_t::x
float x
Definition: accelqvar.h:376
accelqvar_get_qvar_data
err_t accelqvar_get_qvar_data(accelqvar_t *ctx, float *qvar)
AccelQvar get QVAR data function.
accelqvar_default_cfg
err_t accelqvar_default_cfg(accelqvar_t *ctx)
AccelQvar default configuration function.