accel18 2.0.0.0
Main Page

Accel 18 click

‍Accel 18 Click is a compact add-on board that contains an acceleration sensor. This board features the MC3419, a digital output 3-axis accelerometer with a feature set optimized for consumer product motion sensing from MEMSIC.

click Product page


Click library

  • Author : Luka Filipovic
  • Date : Aug 2021.
  • Type : I2C/SPI type

Software Support

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

Standard key functions :

Example key functions :

Example Description

‍This example application showcases ability of the device

to read axes values on detected interrupt.

The demo application is composed of two sections :

Application Init

‍Initialization of comunication modules(SPI/I2C, UART) and additional

two interrupt pins. Then configures device and sets 8g range and 10 Hz data rate, with interrupt enabled.

void application_init ( void )
{
log_cfg_t log_cfg;
accel18_cfg_t accel18_cfg;
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, " Application Init " );
// Click initialization.
accel18_cfg_setup( &accel18_cfg );
ACCEL18_MAP_MIKROBUS( accel18_cfg, MIKROBUS_1 );
err_t init_flag = accel18_init( &accel18, &accel18_cfg );
if ( ( I2C_MASTER_ERROR == init_flag ) || ( SPI_MASTER_ERROR == init_flag ) )
{
log_error( &logger, " Application Init Error. " );
log_info( &logger, " Please, run program again... " );
for ( ; ; );
}
if ( accel18_default_cfg ( &accel18 ) )
{
log_error( &logger, " Default configuration. " );
log_info( &logger, " Please, run program again... " );
for ( ; ; );
}
log_info( &logger, " Application Task " );
}
#define ACCEL18_MAP_MIKROBUS(cfg, mikrobus)
MikroBUS pin mapping.
Definition accel18.h:278
void application_init(void)
Definition main.c:31

Application Task

‍Whenever interrupt is detected checks interrupt status for data ready,

and then reads x, y, and z axes, calculates value and logs result.

void application_task ( void )
{
accel18_axes_t axes_data;
if ( !accel18_get_interrupt_1( &accel18 ) )
{
// Check interrupts
uint8_t interrupt_state = 0;
accel18_byte_read( &accel18, ACCEL18_REG_INTERRUPT_STATUS, &interrupt_state );
if ( interrupt_state & ACCEL18_INT_ACQ_EN )
{
// Axis read
accel18_read_axes( &accel18, &axes_data );
log_printf( &logger, " > X[g]: %.2f\r\n", axes_data.x );
log_printf( &logger, " > Y[g]: %.2f\r\n", axes_data.y );
log_printf( &logger, " > Z[g]: %.2f\r\n", axes_data.z );
log_printf( &logger, "**************************\r\n" );
}
// Clear interrupts
if ( interrupt_state )
{
accel18_byte_write( &accel18, ACCEL18_REG_INTERRUPT_STATUS, ~interrupt_state );
}
}
}
#define ACCEL18_REG_INTERRUPT_STATUS
Definition accel18.h:90
#define ACCEL18_INT_ACQ_EN
Definition accel18.h:150
err_t accel18_byte_write(accel18_t *ctx, uint8_t reg, uint8_t data_in)
Accel 18 byte writing function.
err_t accel18_byte_read(accel18_t *ctx, uint8_t reg, uint8_t *data_out)
Accel 18 byte reading function.
void application_task(void)
Definition main.c:71
float y
Definition accel18.h:364
float x
Definition accel18.h:363
float z
Definition accel18.h:365

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

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.