haptic4  2.1.0.0
Main Page

Haptic 4 click

Haptic 4 Click is a compact add-on board that enables precise haptic feedback in various electronic projects. This board features the DA7280, a haptic driver designed to drive linear resonant actuator (LRA) and eccentric rotating mass (ERM) actuators from Renesas. The DA7280 boasts a differential output drive and continuous motion sensing for calibration-free operation, coupled with wide-band support to leverage the capabilities of modern LRAs. It supports six independent haptic sequences activated directly via mikroBUS™ pins or externally through I2C or PWM signals, offering extensive flexibility for haptic configuration. Ideal for enhancing user experience in wearables, electronic peripherals, automotive interfaces, industrial controls, and AR/VR controllers, this Click board™ opens new possibilities for interactive and tactile-responsive technology.

click Product page


Click library

  • Author : Stefan Ilic
  • Date : Dec 2023.
  • Type : I2C type

Software Support

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

Standard key functions :

Example key functions :

Example Description

This example demonstrates the use of Haptic 4 click board by controlling

the attached motor vibration level.

The demo application is composed of two sections :

Application Init

Initializes the driver and performs the click default configuration.

void application_init ( void )
{
log_cfg_t log_cfg;
haptic4_cfg_t haptic4_cfg;
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, " Application Init " );
// Click initialization.
haptic4_cfg_setup( &haptic4_cfg );
HAPTIC4_MAP_MIKROBUS( haptic4_cfg, MIKROBUS_1 );
if ( I2C_MASTER_ERROR == haptic4_init( &haptic4, &haptic4_cfg ) )
{
log_error( &logger, " Communication init." );
for ( ; ; );
}
if ( HAPTIC4_ERROR == haptic4_default_cfg ( &haptic4 ) )
{
log_error( &logger, " Default configuration." );
for ( ; ; );
}
log_info( &logger, " Application Task " );
}

Application Task

Changes the motor vibration level every 2 seconds between MAX and MIN,

and displays the currently set level on the USB UART.

void application_task ( void )
{
float vibration_level;
{
if ( HAPTIC4_OK == haptic4_get_vibration_level ( &haptic4, &vibration_level ) )
{
log_printf( &logger, " Vibration level: %.3f \r\n\n", vibration_level );
}
}
Delay_ms ( 2000 );
{
if ( HAPTIC4_OK == haptic4_get_vibration_level ( &haptic4, &vibration_level ) )
{
log_printf( &logger, " Vibration level: %.3f \r\n\n", vibration_level );
}
}
Delay_ms ( 2000 );
}

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

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.


haptic4_check_communication
err_t haptic4_check_communication(haptic4_t *ctx)
Haptic 4 check communication function.
haptic4_cfg_t
Haptic 4 Click configuration object.
Definition: haptic4.h:289
HAPTIC4_VIBRATION_LEVEL_MAX
#define HAPTIC4_VIBRATION_LEVEL_MAX
Definition: haptic4.h:212
application_task
void application_task(void)
Definition: main.c:65
haptic4_set_vibration_level
err_t haptic4_set_vibration_level(haptic4_t *ctx, float level)
Haptic 4 set vibration level function.
haptic4_t
Haptic 4 Click context object.
Definition: haptic4.h:267
HAPTIC4_MAP_MIKROBUS
#define HAPTIC4_MAP_MIKROBUS(cfg, mikrobus)
MikroBUS pin mapping.
Definition: haptic4.h:251
haptic4_default_cfg
err_t haptic4_default_cfg(haptic4_t *ctx)
Haptic 4 default configuration function.
haptic4_get_vibration_level
err_t haptic4_get_vibration_level(haptic4_t *ctx, float *level)
Haptic 4 get vibration level function.
HAPTIC4_ERROR
@ HAPTIC4_ERROR
Definition: haptic4.h:310
HAPTIC4_VIBRATION_LEVEL_MIN
#define HAPTIC4_VIBRATION_LEVEL_MIN
Definition: haptic4.h:211
haptic4_cfg_setup
void haptic4_cfg_setup(haptic4_cfg_t *cfg)
Haptic 4 configuration object setup function.
application_init
void application_init(void)
Definition: main.c:29
haptic4_init
err_t haptic4_init(haptic4_t *ctx, haptic4_cfg_t *cfg)
Haptic 4 initialization function.
HAPTIC4_OK
@ HAPTIC4_OK
Definition: haptic4.h:309