c3dhall8  2.0.0.0
Main Page

3D Hall 8 click

3D Hall 8 Click is a compact add-on board containing an ultra-small 3D-magnetic sensor for industrial and consumer applications.

click Product page


Click library

  • Author : Luka Filipovic
  • Date : Jan 2021.
  • Type : I2C type

Software Support

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

Standard key functions :

Example key functions :

Example Description

This application shows capability of 3D Hall 8 Click board.

It configures device and reads sensor data. Sensor is capeable of reading magnetic flux density from 3 axes and temperature.

The demo application is composed of two sections :

Application Init

Initialization of device communication and application log and configures device.

void application_init ( void )
{
log_cfg_t log_cfg;
c3dhall8_cfg_t c3dhall8_cfg;
uint8_t rx_data;
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, " Application Init " );
// Click initialization.
c3dhall8_cfg_setup( &c3dhall8_cfg );
C3DHALL8_MAP_MIKROBUS( c3dhall8_cfg, MIKROBUS_1 );
err_t init_flag = c3dhall8_init( &c3dhall8, &c3dhall8_cfg );
if ( init_flag == I2C_MASTER_ERROR )
{
log_error( &logger, " Application Init Error. " );
log_info( &logger, " Please, run program again... " );
for ( ; ; );
}
log_printf( &logger," > Setting configuration...\r\n" );
c3dhall8_default_cfg ( &c3dhall8 );
log_info( &logger, " Application Task " );
log_printf( &logger, "**************************************\r\n" );
Delay_ms( 1000 );
}

Application Task

Reads data from the device and logs it in span of 500ms.

void application_task ( void )
{
c3dhall8_data_t sens_data;
c3dhall8_read_sensor_data( &c3dhall8, &sens_data );
log_printf( &logger, "> X[mT]: %.2f\r\n> Y[mT]: %.2f\r\n> Z[mT]: %.2f \r\n> Temperature[C]: %.2f\r\n",
sens_data.x_axis, sens_data.y_axis, sens_data.z_axis, sens_data.temperature );
float magnetic_match = c3dhall8_get_xyz_magnetic_matching( &c3dhall8, sens_data );
log_printf( &logger, "> XYZ magnetic matching: %.2f\r\n", magnetic_match );
log_printf( &logger, "**************************************\r\n" );
Delay_ms( 500 );
}

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.3DHall8

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.


c3dhall8_generic_write
err_t c3dhall8_generic_write(c3dhall8_t *ctx, uint8_t reg, uint8_t tx_buf)
3D Hall 8 I2C writing function.
c3dhall8_data_t::temperature
float temperature
Definition: c3dhall8.h:173
c3dhall8_cfg_setup
void c3dhall8_cfg_setup(c3dhall8_cfg_t *cfg)
3D Hall 8 configuration object setup function.
c3dhall8_init
err_t c3dhall8_init(c3dhall8_t *ctx, c3dhall8_cfg_t *cfg)
3D Hall 8 initialization function.
application_task
void application_task(void)
Definition: main.c:70
c3dhall8_data_t::y_axis
float y_axis
Definition: c3dhall8.h:171
c3dhall8_data_t::z_axis
float z_axis
Definition: c3dhall8.h:172
C3DHALL8_MAP_MIKROBUS
#define C3DHALL8_MAP_MIKROBUS(cfg, mikrobus)
MikroBUS pin mapping.
Definition: c3dhall8.h:121
c3dhall8_read_sensor_data
void c3dhall8_read_sensor_data(c3dhall8_t *ctx, c3dhall8_data_t *sensor_data)
Reading sensor data function.
application_init
void application_init(void)
Definition: main.c:30
c3dhall8_data_t
3D Hall 8 Click data object.
Definition: c3dhall8.h:168
c3dhall8_default_cfg
err_t c3dhall8_default_cfg(c3dhall8_t *ctx)
3D Hall 8 default configuration function.
c3dhall8_cfg_t
3D Hall 8 Click configuration object.
Definition: c3dhall8.h:152
c3dhall8_get_xyz_magnetic_matching
float c3dhall8_get_xyz_magnetic_matching(c3dhall8_t *ctx, c3dhall8_data_t sensor_data)
Calculating magnetic matching.
c3dhall8_t
3D Hall 8 Click context object.
Definition: c3dhall8.h:133
c3dhall8_data_t::x_axis
float x_axis
Definition: c3dhall8.h:170