Color 2 click
Color 2 click carries the ISL29125 RGB color light sensor. It detects red, green and blue in a variety of lighting conditions, outputting 16-bit resolution data in a measuring range from 5.7 m lux to 10,000 lux.
click Product page
Click library
- Author : MikroE Team
- Date : Dec 2019.
- Type : I2C type
Software Support
We provide a library for the Color2 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 form compilers IDE(recommended way), or downloaded from our LibStock, or found on mikroE github account.
Library Description
This library contains API for Color2 Click driver.
Standard key functions :
color2_cfg_setup
Config Object Initialization function.
void color2_cfg_setup(color2_cfg_t *cfg)
Config Object Initialization function.
Click configuration structure definition.
Definition color2.h:213
color2_init
Initialization function.
err_t color2_init(color2_t *ctx, color2_cfg_t *cfg)
Initialization function.
Click ctx object definition.
Definition color2.h:197
color2_default_cfg
Click Default Configuration function.
err_t color2_default_cfg(color2_t *ctx)
Click Default Configuration function.
Example key functions :
color2_read_rgb
Function read red, green, and blue data from ISL29125
err_t color2_read_rgb(color2_t *ctx, color2_rgb_t *rgb)
Function read rgb data.
Color 2 RGB channels data object.
Definition color2.h:232
color2_rgb_to_hsl
This function converts RGB (red, green, blue) to HSL (hue, saturation, lightness) color value.
void color2_rgb_to_hsl(color2_t *ctx, color2_rgb_t *rgb, color2_hsl_t *hsl)
Functions for read color value.
Color 2 HSL color data object.
Definition color2.h:244
color2_get_color
This function returns the color name flag from the input HSL color.
uint8_t color2_get_color(color2_hsl_t *hsl)
Functions for detect colors.
Examples Description
This example demonstrates the use of Color 2 click board by reading data
from RGB channels and converting them to HSL color and displaying those data as well as the detected color name on the USB UART.
The demo application is composed of two sections :
Application Init
Initializes the driver and performs the click default configuration.
{
log_cfg_t log_cfg;
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, "---- Application Init ----" );
{
log_error( &logger, " Default configuration." );
for ( ; ; );
}
log_info( &logger, " Application Task " );
}
#define COLOR2_ERROR
Definition color2.h:78
#define COLOR2_MAP_MIKROBUS(cfg, mikrobus)
Definition color2.h:67
void application_init(void)
Definition main.c:36
Application Task
Waits for the data ready interrupt, then reads the values of all channels and converts
them to HSL color and displays those data as well as the detected color name on the USB UART every 100ms approximately.
{
uint8_t status = 0;
{
log_printf ( &logger,
"\r\n Red: %u\r\n", rgb.
red );
log_printf ( &logger,
" Green: %u\r\n", rgb.
green );
log_printf ( &logger,
" Blue: %u\r\n", rgb.
blue );
log_printf ( &logger,
" Hue: %.1f deg\r\n", hsl.
hue );
log_printf ( &logger,
" Saturation: %.1f %%\r\n", hsl.
saturation );
log_printf ( &logger,
" Lightness: %.1f %%\r\n", hsl.
lightness );
log_printf ( &logger, " Dominated color: " );
{
{
log_printf ( &logger, "RED\r\n" );
break;
}
{
log_printf ( &logger, "YELLOW\r\n" );
break;
}
{
log_printf ( &logger, "GREEN\r\n" );
break;
}
{
log_printf ( &logger, "CYAN\r\n" );
break;
}
{
log_printf ( &logger, "BLUE\r\n" );
break;
}
{
log_printf ( &logger, "MAGENTA\r\n" );
break;
}
{
log_printf ( &logger, "WHITE\r\n" );
break;
}
{
log_printf ( &logger, "BLACK\r\n" );
break;
}
default:
{
log_printf ( &logger, "UNKNOWN\r\n" );
break;
}
}
}
}
#define COLOR2_OK
Definition color2.h:77
#define COLOR2_WHITE_COLOR
Definition color2.h:162
#define COLOR2_GREEN_COLOR
Definition color2.h:158
#define COLOR2_BLACK_COLOR
Definition color2.h:163
#define COLOR2_RED_COLOR
Definition color2.h:156
#define COLOR2_BLUE_COLOR
Definition color2.h:160
#define COLOR2_YELLOW_COLOR
Definition color2.h:157
#define COLOR2_CYAN_COLOR
Definition color2.h:159
#define COLOR2_MAGENTA_COLOR
Definition color2.h:161
uint8_t color2_get_int_pin(color2_t *ctx)
Get int pin function.
err_t color2_read_status(color2_t *ctx, uint8_t *status)
Function read status registe value.
void application_task(void)
Definition main.c:67
float hue
Definition color2.h:245
float saturation
Definition color2.h:246
float lightness
Definition color2.h:247
uint16_t blue
Definition color2.h:235
uint16_t green
Definition color2.h:234
uint16_t red
Definition color2.h:233
The full application code, and ready to use projects can be installed directly form compilers IDE(recommneded) or found on LibStock page or mikroE GitHub accaunt.
Other mikroE Libraries used in the example:
- MikroSDK.Board
- MikroSDK.Log
- Click.Color2
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. The terminal available in all Mikroelektronika compilers, or any other terminal application of your choice, can be used to read the message.