Component: Colour Sensor (Grove 101020341) (101020341) (Light): Difference between revisions
No edit summary |
m Text replacement - "style="background-color:#EAE1EA;"" to "class="mtx-class-propfolder"" |
||
| (10 intermediate revisions by 2 users not shown) | |||
| Line 5: | Line 5: | ||
|- | |- | ||
| width="20%" style="color:gray;" | Version | | width="20%" style="color:gray;" | Version | ||
| | | 8.0 | ||
|- | |- | ||
| width="20%" style="color:gray;" | Category | | width="20%" style="color:gray;" | Category | ||
| Line 15: | Line 15: | ||
Based on the color sensor TCS34725FN with digital output I2C. Based on the 8*2 array of filtered photodiodes and 16-bits analog-to-digital converters, you can gain the color chromaticity of ambient light or the color of objects. Of the 16 photodiodes, 4 have red filters, 4 have green filters, 4 have blue filters and 4 have no filter(clear). With the synchronization input pin, external pulsed light source can provides precise synchronous conversion control. | Based on the color sensor TCS34725FN with digital output I2C. Based on the 8*2 array of filtered photodiodes and 16-bits analog-to-digital converters, you can gain the color chromaticity of ambient light or the color of objects. Of the 16 photodiodes, 4 have red filters, 4 have green filters, 4 have blue filters and 4 have no filter(clear). With the synchronization input pin, external pulsed light source can provides precise synchronous conversion control. | ||
== | ==Version information== | ||
Library Version, Component Version, Date, Author, Info | |||
8, 0.0, 27-06-25, MW, Not working on ESP32, changed I2C to transaction functions | |||
==Detailed description== | ==Detailed description== | ||
| Line 57: | Line 58: | ||
''<span style="color:red;">No additional examples</span>'' | ''<span style="color:red;">No additional examples</span>'' | ||
| Line 65: | Line 72: | ||
==Macro reference== | ==Macro reference== | ||
=== | ===CalculateLux=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''CalculateLux''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Uses the RGB values stored in RAM from the last Sample to calculate the luminance in lux. | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u16-icon.png]] - UINT | |||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | |||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
=== | ===CalculateTemp=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''CalculateTemp''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Uses the RGB values stored in RAM from the last Sample to calculate the colour temperature in degrees Kelvin. | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u16-icon.png]] - UINT | |||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | |||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
| Line 114: | Line 101: | ||
===ClearInterrupt=== | ===ClearInterrupt=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''ClearInterrupt''' | ||
|- | |- | ||
| colspan="2" | Clears the interrupt flag allowing the device to interrupt again. | | colspan="2" | Clears the interrupt flag allowing the device to interrupt again. | ||
| Line 127: | Line 114: | ||
=== | ===ControlInterrupt=== | ||
{| class="wikitable" | {| class="mtx-class-macrotable wikitable" | ||
|- | |||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | |||
| width="90%" class="mtx-class-macrohead" | '''ControlInterrupt''' | |||
|- | |||
| colspan="2" | Enables or Disables the Interrupt pin to fire when the light levels are inside the interrupt limits. | |||
|- | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | Enable | |||
|- | |||
| colspan="2" | Range: 0 to 1 - 0=Interrupt Off / 1=Interrupt On | |||
|- | |- | ||
| width="10% | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | ||
| width="90% | | width="90%" | LowLevel | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
|- | |||
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | |||
| width="90%" | HighLevel | |||
|- | |- | ||
| colspan="2" | | |||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
=== | ===DisableSensor=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''DisableSensor''' | ||
|- | |- | ||
| colspan="2" | Powers | | colspan="2" | Powers down the device to save power. | ||
|- | |- | ||
|- | |- | ||
| Line 155: | Line 157: | ||
=== | ===EnableSensor=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''EnableSensor''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Powers up the device ready for taking colour readings. | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
=== | ===Initialise=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Initialise''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Initialise the sensor configuration as set by the component properties. Sets the default intigration time and gain as well as enable the sensor. | ||
|- | |- | ||
|- | |- | ||
| Line 184: | Line 186: | ||
===ReadDataChannel=== | ===ReadDataChannel=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''ReadDataChannel''' | ||
|- | |- | ||
| colspan="2" | Returns the value of the selected colour channel from the last sample. The Red, Green and Blue channels have a colour filter to remove light of other colours. The Clear channel has no filter allowing the ambient light level to be easily collected. | | colspan="2" | Returns the value of the selected colour channel from the last sample. The Red, Green and Blue channels have a colour filter to remove light of other colours. The Clear channel has no filter allowing the ambient light level to be easily collected. | ||
| Line 202: | Line 204: | ||
=== | ===SampleSensor=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SampleSensor''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Reads the raw colour channels from the sensor and stores the readings into RAM to be collected by the ReadDataChannel macro. | ||
|- | |- | ||
|- | |- | ||
| Line 216: | Line 218: | ||
=== | ===SetGain=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SetGain''' | ||
|- | |- | ||
| colspan="2" | Controls the | | colspan="2" | Controls the gain. 0x00 = 1X 0x01 = 4X 0x02 = 16X 0x03 = 60X | ||
|- | |- | ||
|- | |- | ||
| Line 228: | Line 230: | ||
| width="90%" | Setting | | width="90%" | Setting | ||
|- | |- | ||
| colspan="2" | Range: 0 to | | colspan="2" | Range: 0 to 3 | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| Line 235: | Line 237: | ||
=== | ===SetIntegrationTime=== | ||
{| class="wikitable" | {| class="mtx-class-macrotable wikitable" | ||
|- | |||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | |||
| width="90%" class="mtx-class-macrohead" | '''SetIntegrationTime''' | |||
|- | |||
| colspan="2" | Controls the integration time. 0 = 700mS / 1 = 154mS / 2 = 101mS / 3 = 50mS / 4 = 24mS / 5 = 2.4mS | |||
|- | |- | ||
|- | |- | ||
| | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | Setting | |||
|- | |- | ||
| colspan="2" | Range: 0 to 5 | |||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
==Property reference== | ==Property reference== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-prop-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Properties''' | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | Sensor Settings | ||
|- | |- | ||
|- | |- | ||
| Line 273: | Line 278: | ||
| colspan="2" | Length of time period used to sample the sensor frequency (longer is more accurate) | | colspan="2" | Length of time period used to sample the sensor frequency (longer is more accurate) | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | Connections | ||
|- | |- | ||
|- | |- | ||
| Line 283: | Line 288: | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]] | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]] | ||
| width="90%" | | | width="90%" | Mode | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Defines if the component will be used for Master or Slave communications. Master mode supports a software bitbanged I2C channel. Slave mode requires a hardware I2C peripheral to catch the communications from the Master. | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-type-5-icon.png]] | | width="10%" align="center" | [[File:Fc9-type-5-icon.png]] | ||
| Line 301: | Line 296: | ||
|- | |- | ||
| colspan="2" | Pin used for SDA (data signal) | | colspan="2" | Pin used for SDA (data signal) | ||
|- | |||
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]] | |||
| width="90%" | SDA Remap Pin | |||
|- | |||
| colspan="2" | | |||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-type-5-icon.png]] | | width="10%" align="center" | [[File:Fc9-type-5-icon.png]] | ||
| Line 307: | Line 307: | ||
| colspan="2" | Pin used for SCL (clock signal) | | colspan="2" | Pin used for SCL (clock signal) | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]] | ||
| width="90%" | | width="90%" | SCL Remap Pin | ||
|- | |||
| colspan="2" | | |||
|- | |||
| width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | |||
| width="90%" class="mtx-class-propfolder" | Simulation | |||
|- | |- | ||
|- | |- | ||
| Line 316: | Line 321: | ||
| colspan="2" | Selects the simulation type for the component. Component GUI - Interacts with the panel to sense the colour of a object in close proximity to the sensor. I2C Injector - Performs the I2C commands allowing you to connect an injector component or view and debug the I2C communications. | | colspan="2" | Selects the simulation type for the component. Component GUI - Interacts with the panel to sense the colour of a object in close proximity to the sensor. I2C Injector - Performs the I2C commands allowing you to connect an injector component or view and debug the I2C communications. | ||
|} | |} | ||
==Component Source Code== | |||
Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_Colour_Sensor_I2C_Grove.fcfx FC_Comp_Source_Colour_Sensor_I2C_Grove.fcfx] | |||
Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_Colour_Sensor_I2C_Grove.fcfx FC_Comp_Source_Colour_Sensor_I2C_Grove.fcfx] | |||
Latest revision as of 14:37, 13 July 2026
| Author | Matrix TSL |
| Version | 8.0 |
| Category | Light |
Colour Sensor (Grove 101020341) component
Based on the color sensor TCS34725FN with digital output I2C. Based on the 8*2 array of filtered photodiodes and 16-bits analog-to-digital converters, you can gain the color chromaticity of ambient light or the color of objects. Of the 16 photodiodes, 4 have red filters, 4 have green filters, 4 have blue filters and 4 have no filter(clear). With the synchronization input pin, external pulsed light source can provides precise synchronous conversion control.
Version information
Library Version, Component Version, Date, Author, Info 8, 0.0, 27-06-25, MW, Not working on ESP32, changed I2C to transaction functions
Detailed description
No detailed description exists yet for this component
Examples
No additional examples
Macro reference
CalculateLux
| CalculateLux | |
| Uses the RGB values stored in RAM from the last Sample to calculate the luminance in lux. | |
| Return | |
CalculateTemp
| CalculateTemp | |
| Uses the RGB values stored in RAM from the last Sample to calculate the colour temperature in degrees Kelvin. | |
| Return | |
ClearInterrupt
| ClearInterrupt | |
| Clears the interrupt flag allowing the device to interrupt again. | |
| Return | |
ControlInterrupt
DisableSensor
| DisableSensor | |
| Powers down the device to save power. | |
| Return | |
EnableSensor
| EnableSensor | |
| Powers up the device ready for taking colour readings. | |
| Return | |
Initialise
| Initialise | |
| Initialise the sensor configuration as set by the component properties. Sets the default intigration time and gain as well as enable the sensor. | |
| Return | |
ReadDataChannel
SampleSensor
| SampleSensor | |
| Reads the raw colour channels from the sensor and stores the readings into RAM to be collected by the ReadDataChannel macro. | |
| Return | |
SetGain
| SetGain | |
| Controls the gain. 0x00 = 1X 0x01 = 4X 0x02 = 16X 0x03 = 60X | |
| Setting | |
| Range: 0 to 3 | |
| Return | |
SetIntegrationTime
| SetIntegrationTime | |
| Controls the integration time. 0 = 700mS / 1 = 154mS / 2 = 101mS / 3 = 50mS / 4 = 24mS / 5 = 2.4mS | |
| Setting | |
| Range: 0 to 5 | |
| Return | |
Property reference
Component Source Code
Please click here to download the component source project: FC_Comp_Source_Colour_Sensor_I2C_Grove.fcfx
Please click here to view the component source code (Beta): FC_Comp_Source_Colour_Sensor_I2C_Grove.fcfx