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 :
accel18_cfg_setup
Config Object Initialization function.
void accel18_cfg_setup(accel18_cfg_t *cfg)
Accel 18 configuration object setup function.
Accel 18 Click configuration object.
Definition accel18.h:336
accel18_init
Initialization function.
err_t accel18_init(accel18_t *ctx, accel18_cfg_t *cfg)
Accel 18 initialization function.
Accel 18 Click context object.
Definition accel18.h:313
accel18_default_cfg
Click Default Configuration function.
err_t accel18_default_cfg(accel18_t *ctx)
Accel 18 default configuration function.
Example key functions :
accel18_read_axes
Accel data reading.
err_t accel18_read_axes(accel18_t *ctx, accel18_axes_t *axes_data)
Accel data reading.
Accel 18 Click axes data.
Definition accel18.h:362
accel18_set_range
Set range configuration.
err_t accel18_set_range(accel18_t *ctx, uint8_t range_macro)
Set range configuration.
accel18_get_interrupt_1
Get interrupt 1 pin state.
uint8_t accel18_get_interrupt_1(accel18_t *ctx)
Get interrupt 1 pin state.
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.
{
log_cfg_t log_cfg;
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, " Application Init " );
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 ( ; ; );
}
{
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.
{
{
uint8_t interrupt_state = 0;
{
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" );
}
if ( 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.