c2x2rgb  2.1.0.0
Main Page

2x2 RGB click

PRVIH_PAR_RECENICA_SA_PRODUCT_PAGE_DA_ISPRATE_CELINU

[click Product page](CLICK_PRODUCT_PAGE_LINK)


Click library

  • Author : Mikroe Team
  • Date : Sep 2023.
  • Type : I2C type

Software Support

We provide a library for the 2x2 RGB 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 2x2 RGB Click driver.

Standard key functions :

Example key functions :

  • c2x2rgb_set_rgb_led 2x2 RGB set RGB LED function.
    err_t c2x2rgb_set_rgb_led ( c2x2rgb_t *ctx, uint8_t led_num, uint16_t ired, uint16_t igrn, uint16_t iblu );
  • c2x2rgb_set_control 2x2 RGB set control function.
    err_t c2x2rgb_set_control ( c2x2rgb_t *ctx, uint8_t en_mode, uint8_t be_en,
    uint8_t ce_temp, uint8_t fade_rate );

Example Description

This example demonstrates the use of the 2x2 RGB Click boardâ„¢ by controlling the color of the LEDs [1-4].

The demo application is composed of two sections :

Application Init

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

void application_init ( void )
{
log_cfg_t log_cfg;
c2x2rgb_cfg_t c2x2rgb_cfg;
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, " Application Init " );
// Click initialization.
c2x2rgb_cfg_setup( &c2x2rgb_cfg );
C2X2RGB_MAP_MIKROBUS( c2x2rgb_cfg, MIKROBUS_1 );
if ( I2C_MASTER_ERROR == c2x2rgb_init( &c2x2rgb, &c2x2rgb_cfg ) )
{
log_error( &logger, " Communication init." );
for ( ; ; );
}
if ( C2X2RGB_ERROR == c2x2rgb_default_cfg ( &c2x2rgb ) )
{
log_error( &logger, " Default configuration." );
for ( ; ; );
}
log_info( &logger, " Application Task " );
log_printf( &logger, "----------------" );
Delay_ms( 100 );
}

Application Task

This simple example shows all LEDs in different colors. These LEDs actually consist of three single-colored LEDs (Red, Green and Blue) in a single package. Various colors can be reproduced by mixing the intensity of each LED.

void application_task ( void )
{
log_printf( &logger, "\r\nRED: " );
for ( uint8_t led_pos = C2X2RGB_SET_LD1; led_pos <= C2X2RGB_SET_LD4; led_pos++ )
{
if ( C2X2RGB_OK == c2x2rgb_set_rgb_led( &c2x2rgb, led_pos, DEMO_LED_CURRENT,
{
log_printf( &logger, "LD%d ", ( uint16_t ) led_pos );
}
Delay_ms( 200 );
}
log_printf( &logger, "\r\nGREEN: " );
for ( uint8_t led_pos = C2X2RGB_SET_LD1; led_pos <= C2X2RGB_SET_LD4; led_pos++ )
{
{
log_printf( &logger, "LD%d ", ( uint16_t ) led_pos );
}
Delay_ms( 200 );
}
log_printf( &logger, "\r\nBLUE: " );
for ( uint8_t led_pos = C2X2RGB_SET_LD1; led_pos <= C2X2RGB_SET_LD4; led_pos++ )
{
{
log_printf( &logger, "LD%d ", ( uint16_t ) led_pos );
}
Delay_ms( 200 );
}
log_printf( &logger, "\r\nWHITE: " );
for ( uint8_t led_pos = C2X2RGB_SET_LD1; led_pos <= C2X2RGB_SET_LD4; led_pos++ )
{
if ( C2X2RGB_OK == c2x2rgb_set_rgb_led( &c2x2rgb, led_pos, DEMO_LED_CURRENT,
{
log_printf( &logger, "LD%d ", ( uint16_t ) led_pos );
}
Delay_ms( 200 );
}
log_printf( &logger, "\r\n----------------" );
}

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.2x2RGB

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.


C2X2RGB_SET_LD1
#define C2X2RGB_SET_LD1
2x2 RGB LED selection data values.
Definition: c2x2rgb.h:98
c2x2rgb_set_rgb_led
err_t c2x2rgb_set_rgb_led(c2x2rgb_t *ctx, uint8_t led_num, uint16_t ired, uint16_t igrn, uint16_t iblu)
2x2 RGB set RGB LED function.
C2X2RGB_OK
@ C2X2RGB_OK
Definition: c2x2rgb.h:262
DEMO_LED_CURRENT
#define DEMO_LED_CURRENT
Definition: main.c:28
c2x2rgb_default_cfg
err_t c2x2rgb_default_cfg(c2x2rgb_t *ctx)
2x2 RGB default configuration function.
c2x2rgb_cfg_t
2x2 RGB Click configuration object.
Definition: c2x2rgb.h:226
C2X2RGB_MAP_MIKROBUS
#define C2X2RGB_MAP_MIKROBUS(cfg, mikrobus)
MikroBUS pin mapping.
Definition: c2x2rgb.h:199
c2x2rgb_t
2x2 RGB Click context object.
Definition: c2x2rgb.h:211
application_task
void application_task(void)
Definition: main.c:71
c2x2rgb_init
err_t c2x2rgb_init(c2x2rgb_t *ctx, c2x2rgb_cfg_t *cfg)
2x2 RGB initialization function.
C2X2RGB_LED_CURRENT_OFF
#define C2X2RGB_LED_CURRENT_OFF
2x2 RGB LED current setting data values.
Definition: c2x2rgb.h:125
c2x2rgb_set_control
err_t c2x2rgb_set_control(c2x2rgb_t *ctx, uint8_t en_mode, uint8_t be_en, uint8_t ce_temp, uint8_t fade_rate)
2x2 RGB set control function.
c2x2rgb_cfg_setup
void c2x2rgb_cfg_setup(c2x2rgb_cfg_t *cfg)
2x2 RGB configuration object setup function.
C2X2RGB_SET_LD4
#define C2X2RGB_SET_LD4
Definition: c2x2rgb.h:101
application_init
void application_init(void)
Definition: main.c:33
C2X2RGB_ERROR
@ C2X2RGB_ERROR
Definition: c2x2rgb.h:263