current10  2.1.0.0
Main Page

Current 10 click

Current 10 Click is a compact add-on board designed for reliable current measurements. This board features the CT455, an XtremeSense™ TMR coreless current sensor from Allegro Microsystems, with a wide 1MHz bandwidth and a sensitivity of 333.3mV/mT, capable of detecting both positive and negative current flows (±6mT). It translates magnetic fields into a linear analog output with less than ±1.0% error across temperature and supply voltage variations.

click Product page


Click library

  • Author : Stefan Filipovic
  • Date : Sep 2024.
  • Type : ADC/I2C type

Software Support

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

Standard key functions :

Example key functions :

Example Description

This example demonstrates the use of Current 10 click board by reading and displaying the input current measurements.

The demo application is composed of two sections :

Application Init

Initializes the driver and calibrates the zero current offset and data resolution at 3A load current.

void application_init ( void )
{
log_cfg_t log_cfg;
current10_cfg_t current10_cfg;
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, " Application Init " );
// Click initialization.
current10_cfg_setup( &current10_cfg );
CURRENT10_MAP_MIKROBUS( current10_cfg, MIKROBUS_1 );
err_t init_flag = current10_init( &current10, &current10_cfg );
if ( ( ADC_ERROR == init_flag ) || ( I2C_MASTER_ERROR == init_flag ) )
{
log_error( &logger, " Communication init." );
for ( ; ; );
}
log_printf( &logger, " Calibrating zero current offset in 5 seconds...\r\n" );
log_printf( &logger, " Make sure no current flows through the sensor during the calibration process.\r\n" );
for ( uint8_t cnt = 5; cnt > 0; cnt-- )
{
log_printf( &logger, " %u\r\n", ( uint16_t ) cnt );
Delay_ms ( 1000 );
}
if ( CURRENT10_ERROR == current10_calib_offset ( &current10 ) )
{
log_error( &logger, " Calibrate offset." );
for ( ; ; );
}
log_printf( &logger, " Offset calibration DONE.\r\n\n" );
log_printf( &logger, " Calibrating data resolution in 5 seconds...\r\n" );
log_printf( &logger, " Keep the load current set at %.1fA during the calibration process.\r\n",
for ( uint8_t cnt = 5; cnt > 0; cnt-- )
{
log_printf( &logger, " %u\r\n", ( uint16_t ) cnt );
Delay_ms ( 1000 );
}
{
log_error( &logger, " Calibrate resolution." );
for ( ; ; );
}
log_printf( &logger, " Data resolution calibration DONE.\r\n" );
log_info( &logger, " Application Task " );
}

Application Task

Reads the input current measurements and displays the results on the USB UART approximately once per second.

void application_task ( void )
{
float current = 0;
if ( CURRENT10_OK == current10_read_current ( &current10, &current ) )
{
log_printf( &logger, " Current : %.1f A\r\n\n", current );
Delay_ms ( 1000 );
}
}

Note

The measurement range is approximately: +/- 75A.

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

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.


current10_cfg_t
Current 10 Click configuration object.
Definition: current10.h:155
CURRENT10_CALIBRATING_CURRENT
#define CURRENT10_CALIBRATING_CURRENT
Definition: main.c:31
CURRENT10_MAP_MIKROBUS
#define CURRENT10_MAP_MIKROBUS(cfg, mikrobus)
MikroBUS pin mapping.
Definition: current10.h:113
current10_read_current
err_t current10_read_current(current10_t *ctx, float *current)
Current 10 read current function.
application_task
void application_task(void)
Definition: main.c:96
CURRENT10_ERROR
@ CURRENT10_ERROR
Definition: current10.h:177
current10_calib_offset
err_t current10_calib_offset(current10_t *ctx)
Current 10 calib offset function.
CURRENT10_OK
@ CURRENT10_OK
Definition: current10.h:176
current10_cfg_setup
void current10_cfg_setup(current10_cfg_t *cfg)
Current 10 configuration object setup function.
current10_init
err_t current10_init(current10_t *ctx, current10_cfg_t *cfg)
Current 10 initialization function.
application_init
void application_init(void)
Definition: main.c:36
current10_t
Current 10 Click context object.
Definition: current10.h:137
current10_calib_resolution
err_t current10_calib_resolution(current10_t *ctx, float calib_current)
Current 10 calib resolution function.