How does it work?
Accel 22 Click as its foundation uses the ADXL367, a complete 3-axis acceleration measurement system that operates at low power consumption levels, consisting as well of an ADC for synchronous conversion of input from a third sensor and a temperature sensor from Analog Devices. It measures both dynamic accelerations, resulting from motion or shock, and static acceleration, such as tilt, and allows selectable full-scale acceleration measurements in ranges of ±2g, ±4g, and ±8g with a resolution of 0.25mg/LSB on the ±2g range. Acceleration is reported digitally, communicating via either the SPI or the I2C protocol and providing 14-bit output resolution.
The ADXL367 has three operating modes: Measurement mode for continuous wide-bandwidth sensing, Wake-up mode for limited bandwidth activity detection, and Standby mode for power conservation. Measurement mode represents its normal operating mode, and in this mode, acceleration data is read continuously, while the Wake-Up mode is ideal for simple detection of the presence or absence of motion at low power consumption. Wake-up mode helps implement a motion-activated ON/OFF switch, allowing the rest of the system to Power-Down until the activity is detected. In addition, the Standby mode suspends measurement and reduces power consumption.
Accel 22 Click allows using both I2C and SPI interfaces. The selection can be made by positioning SMD jumpers labeled as COMM SEL in an appropriate position. Note that all the jumpers’ positions must be on the same side, or the Click board™ may become unresponsive. While the I2C interface is selected, the ADXL367 allows choosing the least significant bit (LSB) of its I2C slave address using the SMD jumper labeled ADDR SEL.
This Click board™ also possesses two register-configurated interrupt pins, I1 and I2, routed to the INT and AN pins on the mikroBUS™, which has a dual function that can trigger interrupts to alert the host of certain status conditions. They can be used as classic interrupt pins to signal MCU that an event has been sensed or can be used, e.g., I1 as an input for external clocking and I2 as input for synchronized sampling. One or both of these alternate functions can be used concurrently; however, if an interrupt pin is used for its alternate function, it cannot simultaneously be used for its primary function, to signal interrupts.
The ADXL367 incorporates a 14-bit analog-to-digital converter (ADC) to digitize the external analog signal, connected to a header at the top of the board, which is unpopulated by default. The ADC converts analog inputs ranging from 10% to 90% of the internally regulated voltage, limiting the external ADC’s input range to a maximum of 1V.
This Click board™ can be operated only with a 3.3V logic voltage level. The board must perform appropriate logic voltage level conversion before using MCUs with different logic levels. However, the Click board™ comes equipped with a library containing functions and an example code that can be used, as a reference, for further development.
Specifications
Type
Motion
Applications
Can be used for various applications such as motion-activated functions and user interfaces and many asset monitoring functions in a wide range of industrial applications
On-board modules
ADXL367 – three-axis MEMS accelerometer from Analog Devices
Key Features
Low power consumption, high-performance, high resolution, single/double tap detection, adjustable threshold sleep/wake-up modes for motion activation, configurable interrupts, integrated temperature sensor, external analog signal connection, and more
Interface
I2C,SPI
Feature
No ClickID
Compatibility
mikroBUS™
Click board size
S (28.6 x 25.4 mm)
Input Voltage
3.3V
Pinout diagram
This table shows how the pinout on Accel 22 Click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
Onboard settings and indicators
Label | Name | Default | Description |
---|---|---|---|
LD1 | PWR | – | Power LED Indicator |
JP1-JP4 | COMM SEL | Left | Communication Interface Selection SPI/I2C: Left position SPI, Right position I2C |
JP5 | ADDR SEL | Left | I2C Address Selection 0/1: Left position 0, Right position 1 |
J1 | – | Unpopulated | External Analog Signal Connection Header |
Accel 22 Click electrical specifications
Description | Min | Typ | Max | Unit |
---|---|---|---|---|
Supply Voltage | – | 3.3 | – | V |
Acceleration Range | ±2 | – | ±8 | g |
Sensitivity | 4000 | – | 1000 | LSB/g |
Resolution | – | 14 | – | bits |
Operating Temperature Range | -40 | +25 | +85 | °C |
Software Support
We provide a library for the Accel 22 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 Accel 22 Click driver.
Key functions
-
accel22_get_axes
This function reads accel X, Y, and Z axis data in mg. -
accel22_get_temperature
This function reads the temperature in Celsius. -
accel22_get_adc
This function reads the ADC voltage.
Example Description
This example demonstrates the use of Accel 22 Click board™ by reading and displaying Accel data (X, Y, and Z axis) as well as temperature and ADC measurements on the USB UART.
void application_task ( void )
{
accel22_axes_t axes;
// Wait for data ready indication
while ( !accel22_get_int1_pin ( &accel22 ) );
if ( ACCEL22_OK == accel22_get_axes ( &accel22, &axes ) )
{
log_printf( &logger, " X: %.2f mgrn", axes.x );
log_printf( &logger, " Y: %.2f mgrn", axes.y );
log_printf( &logger, " Z: %.2f mgrn", axes.z );
}
if ( ACCEL22_OK == accel22_enable_temperature_measurement ( &accel22 ) )
{
float temperature = 0;
// Wait for data ready indication
while ( !accel22_get_int1_pin ( &accel22 ) );
if ( ACCEL22_OK == accel22_get_temperature ( &accel22, &temperature ) )
{
log_printf( &logger, " Temperature: %.2f Crn", temperature );
}
}
if ( ACCEL22_OK == accel22_enable_adc_measurement ( &accel22 ) )
{
float adc_voltage = 0;
// Wait for data ready indication
while ( !accel22_get_int1_pin ( &accel22 ) );
if ( ACCEL22_OK == accel22_get_adc ( &accel22, &adc_voltage ) )
{
log_printf( &logger, " ADC: %.2f Vrnn", adc_voltage );
}
}
Delay_ms ( 100 );
}
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.Accel22
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.
mikroSDK
This Click board™ is supported with mikroSDK – MikroElektronika Software Development Kit. To ensure proper operation of mikroSDK compliant Click board™ demo applications, mikroSDK should be downloaded from the LibStock and installed for the compiler you are using.
For more information about mikroSDK, visit the official page.