Color click is a color light sensing Click board™, featuring the popular TSC3471 integrated color sensor. It is capable of sensing red, green, and blue light components, as well as the clear light. It has a very high dynamic range of 1,000,000:1, which allows the Click board™ to be used in various light conditions. It is equipped with the additional high brightness RGB LED, so it can be even used in a total absence of any light. The programmable gain of the TSC3471 sensor helps in achieving the optimal color reading conditions, while the advanced programmable interrupt engine with thresholds allows the events to be reported to the host MCU without constantly polling the registers for new data.
This product is no longer in stock
The sensor uses the industry standard I2C interface to exchange data with the host MCU. The high brightness RGB LED can be simply driven by MCU pins since it has three driving transistors onboard which provide enough current for the segments. The Click board™ is an ideal solution for various colored light sensing applications, or for simple object recognition. It can be used for the RGB LED color correction, backlight adjustment, in robotics - for the object color recognition, light color temperature sensing, and similar applications that require accurate and flexible color sensing.
Color click has two active components used to sense color: it is equipped with the popular TSC3471 integrated color light-to-digital converter by ams-TAOS, and the LRTB GFTG, a high brightness RGB LED, from Osram Opto-semiconductors. The TSC3471 color sensor features a 4x4 array of photo-diodes, which allow detection of each light component: red, green, and blue (R, G, B). Additionally, it can sense the clear light component, too. The sensor IC has a programmable gain control (for all segments simultaneously), applying gain ratios of 1, 4, 16, and 60. This allows the optimal range of the A/D converters (ADC) to be used.
The sensor has an integrating 16-bit ADC section for each channel, performing signal integration, which affects both the sensitivity and the acquisition time. When the conversion is done, the results are stored on the output registers in 16-bit format. The data transfer is double buffered, preventing reading errors, while the conversion is in progress. The sensor does not have any IR filter, thus it has to be placed under the IR blocking glass if sensing ambient light. However, it is ideally suited for the RGB lighting applications, since the LEDs emit light in reasonably narrow spectrum bands, with no IR component. The sensor can achieve dynamic range up to 1,000,000:1 in such scenario.
The interrupt pin is an open drain type, routed to the mikroBUS™ INT pin. It is used to alert the MCU when a certain condition is reached: there are two 16-bit registers which contain upper and lower thresholds for the color intensity reading. Furthermore, a persistence filter allows triggering interrupts only when enough out-of-range events are accumulated. The number of out-of-range occurrences before the interrupt is triggered are configured via the appropriate register.
The TSC3471 sensor is driven by the state machine. It controls the operation of the sensor, via the state bits found in the ENABLE register. This register contains bits that control the ADC operation, power-on operation, enable interrupt engine, enable wait timers, and so on. The full list of registers and the in-depth explanation is provided in the TSC3471 datasheet. However, libraries provided with the Click board™ offer easy to use functions, which accelerate the prototyping and cut the time to market.
The Osram RGB LED is controlled directly, via the GPIO pins of the host controller. The bases of three transistors are routed to AN, CS and PWM pins of the mikroBUS™. Logic HIGH level on the base will bias the transistor so it allows current flowing through the RGB LED segments. The current through the LED is limited by a series resistor, so it won't damage both LED and the transistors. This LED provides a limited amount of controlled light, which can be used to illuminate the measured object in low light situations. Instead of HIGH or LOW logic levels, it is possible to bring the PWM signal to these pins, which will allow brightness control of the R,G, and B segments of the LRTB GFTG.
an ideal solution for It can be used for the RGB LED color correction, backlight adjustment, in robotics - for the object color recognition, light color temperature sensing, and similar applications that require accurate and flexible color sensing
TSC3471 integrated color light-to-digital converter, by ams-TAOS; LRTB GFTG RGB LED from Osram
High dynamic range, red, green, blue, and clear light detection, onboard RGB led for low light situations, fast I2C communication, buffered writes for increased data reliability, programmable interrupt engine, and more
Click board size
S (28.6 x 25.4 mm)
This table shows how the pinout on Color click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
|Red LED||RD||1||AN||PWM||16||BL||Blue LED|
|Power supply||3.3V||7||3.3V||5V||10||5V||Power supply|
We provide a library for the Color Click on our LibStock page, as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.
The library initializes and defines the I2C bus driver and drivers that offer a choice for writing data in the register. The library includes a function for configuration chip for measurement, the function reads one color ratio and functions for light color value is received by calculating RGBC value and conversions in HSL value. The user also has the function color_getColor() which checks the color of the light and functions to enable or disable RGB LED.Key functions:
void color_setLED(uint8_t red, uint8_t green, uint8_t blue)- Functions for set Led lights
float color_getColorValue()- Functions for reading the color value in HSL
uint8_t color_getColor(float color_value)- Functions for detect colors
float color_readColorRatio(uint8_t color)- Functions for reading color ratio
The application is composed of three sections :
colorValue = color_getColorValue();
isColor = color_getColor(colorValue);
mikrobus_logWrite("--- Color: ORANGE ", _LOG_LINE);
mikrobus_logWrite("--- Color: RED ", _LOG_LINE);
mikrobus_logWrite("--- Color: PINK ", _LOG_LINE);
mikrobus_logWrite("--- Color: PURPLE ", _LOG_LINE);
mikrobus_logWrite("--- Color: BLUE ", _LOG_LINE);
mikrobus_logWrite("--- Color: CYAN ", _LOG_LINE);
mikrobus_logWrite("--- Color: GREEN ", _LOG_LINE);
mikrobus_logWrite("--- Color: YELLOW ", _LOG_LINE);
The full application code, and ready to use projects can be found on our Libstock page.
Other MikroElektronika libraries used in the example:
Additional notes and information
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.
This click board is supported with mikroSDK - MikroElektronika Software Development Kit. To ensure proper operation of mikroSDK compliant click board demo applications, mikroSDK should be downloaded from the LibStock and installed for the compiler you are using.
For more information about mikroSDK, visit the official page.