hallswitch3  2.1.0.0
Main Page

Hall Switch 3 click

Hall Switch 3 Click is a compact add-on board representing a magnetic field-activated switch. This board features the NMH1000, a Hall-effect magnetic switch from NXP Semiconductor. It is a low-voltage, low-current, and low-output data rate device with a very small size. The switch is most sensitive to a vertical field passing through the top-bottom surfaces, orthogonal to the plane of the Hall Switch 3 Click boardâ„¢.

click Product page


Click library

  • Author : Nenad Filipovic
  • Date : Nov 2023.
  • Type : I2C type

Software Support

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

Standard key functions :

Example key functions :

Example Description

This example demonstrates the use of Hall Switch 3 Click board by reading and displaying the magnetic field strength value.

The demo application is composed of two sections :

Application Init

Initialization of I2C module and log UART. After driver initialization, the app executes a default configuration.

void application_init ( void )
{
log_cfg_t log_cfg;
hallswitch3_cfg_t hallswitch3_cfg;
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, " Application Init " );
// Click initialization.
hallswitch3_cfg_setup( &hallswitch3_cfg );
HALLSWITCH3_MAP_MIKROBUS( hallswitch3_cfg, MIKROBUS_1 );
if ( I2C_MASTER_ERROR == hallswitch3_init( &hallswitch3, &hallswitch3_cfg ) )
{
log_error( &logger, " Communication init." );
for ( ; ; );
}
if ( HALLSWITCH3_ERROR == hallswitch3_default_cfg ( &hallswitch3 ) )
{
log_error( &logger, " Default configuration." );
for ( ; ; );
}
log_info( &logger, " Application Task " );
}

Application Task

This example demonstrates the use of the Hall Switch 3 Click board. The demo application reads and displays the relative magnetic field strength value [Gaussian units] and detects when the magnetic field strength is not in the configured range. The results are sent to the UART terminal, where you can monitor their changes.

void application_task ( void )
{
int8_t mag_data = 0;
if ( HALLSWITCH3_OK == hallswitch3_get_mag_data( &hallswitch3, &mag_data ) )
{
log_printf( &logger, " Magnetic Field: %d [Gs]\r\n", ( int16_t ) mag_data );
{
log_printf( &logger, " The switch is open.\r\n" );
}
}
Delay_ms( 1000 );
}

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

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.


hallswitch3_get_status
err_t hallswitch3_get_status(hallswitch3_t *ctx, uint8_t *status)
Hall Switch 3 get status function.
HALLSWITCH3_OK
@ HALLSWITCH3_OK
Definition: hallswitch3.h:231
hallswitch3_init
err_t hallswitch3_init(hallswitch3_t *ctx, hallswitch3_cfg_t *cfg)
Hall Switch 3 initialization function.
HALLSWITCH3_ERROR
@ HALLSWITCH3_ERROR
Definition: hallswitch3.h:232
hallswitch3_cfg_t
Hall Switch 3 Click configuration object.
Definition: hallswitch3.h:214
HALLSWITCH3_OUT_STATE_LOW
#define HALLSWITCH3_OUT_STATE_LOW
Hall Switch 3 OUT pin states.
Definition: hallswitch3.h:152
application_task
void application_task(void)
Definition: main.c:68
hallswitch3_check_mag_field
uint8_t hallswitch3_check_mag_field(hallswitch3_t *ctx)
Hall Switch 3 check magnetic field function.
hallswitch3_t
Hall Switch 3 Click context object.
Definition: hallswitch3.h:197
hallswitch3_get_mag_data
err_t hallswitch3_get_mag_data(hallswitch3_t *ctx, int8_t *mag_data)
Hall Switch 3 get mag data function.
hallswitch3_cfg_setup
void hallswitch3_cfg_setup(hallswitch3_cfg_t *cfg)
Hall Switch 3 configuration object setup function.
application_init
void application_init(void)
Definition: main.c:32
hallswitch3_default_cfg
err_t hallswitch3_default_cfg(hallswitch3_t *ctx)
Hall Switch 3 default configuration function.
HALLSWITCH3_MAP_MIKROBUS
#define HALLSWITCH3_MAP_MIKROBUS(cfg, mikrobus)
MikroBUS pin mapping.
Definition: hallswitch3.h:184
hallswitch3_set_out_data_rate
err_t hallswitch3_set_out_data_rate(hallswitch3_t *ctx, uint8_t odr)
Hall Switch 3 sets output data rates function.