piezoaccel250g  2.1.0.0
Main Page

Piezo Accel 2 50g Click

Piezo Accel 2 Click - 50g is a compact add-on board for precise vibration and motion monitoring in condition-based maintenance applications. This board features the 830M1-0050, a triaxial piezoelectric accelerometer from TE Connectivity, capable of detecting motion and acceleration along all three axes (X, Y, Z). The 830M1-0050 offers a ±50g range with a sensitivity of 25mV/g, providing reliable and accurate analog voltage outputs. It integrates a built-in RTD temperature sensor for simultaneous vibration and temperature monitoring, and the onboard MCP3562R 24-bit ADC converts these signals into high-resolution digital data. Communication is made through an SPI interface with additional interrupt and clock functionality for easy integration with a host MCU.

Click Product page


Click library

  • Author : Stefan Filipovic
  • Date : Apr 2024.
  • Type : SPI type

Software Support

We provide a library for the Piezo Accel 2 50g 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 Piezo Accel 2 50g Click driver.

Standard key functions :

Example key functions :

Example Description

This example demonstrates the use of Piezo Accel 2 50g Click board by reading and displaying

the ADC values of X, Y, and Z axis, and the internal temperature sensor measurements. Those data can be visualized on the SerialPlot application.

The demo application is composed of two sections :

Application Init

Initializes the driver and performs the Click default configuration for ADC measurements.

void application_init ( void )
{
log_cfg_t log_cfg;
piezoaccel250g_cfg_t piezoaccel250g_cfg;
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, " Application Init " );
// Click initialization.
piezoaccel250g_cfg_setup( &piezoaccel250g_cfg );
PIEZOACCEL250G_MAP_MIKROBUS( piezoaccel250g_cfg, MIKROBUS_1 );
if ( SPI_MASTER_ERROR == piezoaccel250g_init( &piezoaccel250g, &piezoaccel250g_cfg ) )
{
log_error( &logger, " Communication init." );
for ( ; ; );
}
if ( PIEZOACCEL250G_ERROR == piezoaccel250g_default_cfg ( &piezoaccel250g ) )
{
log_error( &logger, " Default configuration." );
for ( ; ; );
}
log_info( &logger, " Application Task " );
}

Application Task

Reads the ADC values of X, Y, and Z axis, and the internal temperature sensor measurements

and displays them on the USB UART (SerialPlot) every 5ms approximately.

void application_task ( void )
{
if ( PIEZOACCEL250G_OK == piezoaccel250g_read_adc_data ( &piezoaccel250g, &adc_data ) )
{
log_printf ( &logger, "%lu;%lu;%lu;%lu;\r\n", adc_data.raw_x, adc_data.raw_y,
adc_data.raw_z, adc_data.raw_temp );
}
}

Note

We recommend using the SerialPlot tool for data visualization. The temperature measurements

should be visualized independently. The data format for plotter is as follows: X;Y;Z;TEMP;

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

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.


piezoaccel250g_cfg_setup
void piezoaccel250g_cfg_setup(piezoaccel250g_cfg_t *cfg)
Piezo Accel 2 50g configuration object setup function.
piezoaccel250g_cfg_t
Piezo Accel 2 50g Click configuration object.
Definition: piezoaccel250g.h:366
PIEZOACCEL250G_OK
@ PIEZOACCEL250G_OK
Definition: piezoaccel250g.h:390
piezoaccel250g_adc_data_t::raw_y
uint32_t raw_y
Definition: piezoaccel250g.h:336
piezoaccel250g_adc_data_t
Piezo Accel 2 50g Click adc data object.
Definition: piezoaccel250g.h:334
piezoaccel250g_adc_data_t::raw_x
uint32_t raw_x
Definition: piezoaccel250g.h:335
application_task
void application_task(void)
Definition: main.c:70
piezoaccel250g_reg_read_multi
err_t piezoaccel250g_reg_read_multi(piezoaccel250g_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
Piezo Accel 2 50g reg read multi function.
piezoaccel250g_fast_cmd_write
err_t piezoaccel250g_fast_cmd_write(piezoaccel250g_t *ctx, uint8_t fast_cmd)
Piezo Accel 2 50g fast cmd write function.
piezoaccel250g_t
Piezo Accel 2 50g Click context object.
Definition: piezoaccel250g.h:347
PIEZOACCEL250G_ERROR
@ PIEZOACCEL250G_ERROR
Definition: piezoaccel250g.h:391
PIEZOACCEL250G_MAP_MIKROBUS
#define PIEZOACCEL250G_MAP_MIKROBUS(cfg, mikrobus)
MikroBUS pin mapping.
Definition: piezoaccel250g.h:318
piezoaccel250g_default_cfg
err_t piezoaccel250g_default_cfg(piezoaccel250g_t *ctx)
Piezo Accel 2 50g default configuration function.
application_init
void application_init(void)
Definition: main.c:34
piezoaccel250g_adc_data_t::raw_temp
uint32_t raw_temp
Definition: piezoaccel250g.h:338
piezoaccel250g_init
err_t piezoaccel250g_init(piezoaccel250g_t *ctx, piezoaccel250g_cfg_t *cfg)
Piezo Accel 2 50g initialization function.
piezoaccel250g_read_adc_data
err_t piezoaccel250g_read_adc_data(piezoaccel250g_t *ctx, piezoaccel250g_adc_data_t *data_out)
Piezo Accel 2 50g read adc data function.
piezoaccel250g_adc_data_t::raw_z
uint32_t raw_z
Definition: piezoaccel250g.h:337