| Author
|
Matrix TSL
|
| Version
|
1.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.
Component Source Code
Please click here to download the component source project: FC_Comp_Source_I2C_Colour_Sensor.fcfx
Please click here to view the component source code (Beta): FC_Comp_Source_I2C_Colour_Sensor.fcfx
Detailed description
No detailed description exists yet for this component
Examples
No additional examples
Macro reference
|
ControlInterrupt
|
| Enables or Disables the Interrupt pin to fire when the light levels are inside the interrupt limits.
|
- BYTE
|
Enable
|
| Range: 0 to 1 - 0=Interrupt Off / 1=Interrupt On
|
- UINT
|
LowLevel
|
|
|
- UINT
|
HighLevel
|
|
|
- VOID
|
Return
|
|
SetGain
|
| Controls the gain. 0x00 = 1X 0x01 = 4X 0x02 = 16X 0x03 = 60X
|
- BYTE
|
Setting
|
| Range: 0 to 3
|
- VOID
|
Return
|
|
ClearInterrupt
|
| Clears the interrupt flag allowing the device to interrupt again.
|
- VOID
|
Return
|
|
CalculateTemp
|
| Uses the RGB values stored in RAM from the last Sample to calculate the colour temperature in degrees Kelvin.
|
- UINT
|
Return
|
|
EnableSensor
|
| Powers up the device ready for taking colour readings.
|
- VOID
|
Return
|
|
CalculateLux
|
| Uses the RGB values stored in RAM from the last Sample to calculate the luminance in lux.
|
- UINT
|
Return
|
|
SampleSensor
|
| Reads the raw colour channels from the sensor and stores the readings into RAM to be collected by the ReadDataChannel macro.
|
- VOID
|
Return
|
|
ReadDataChannel
|
| 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.
|
- BYTE
|
ColourChannel
|
| Range: 0 to 3 - 0=Red, 1=Green, 2=Blue, 3=Clear
|
- UINT
|
Return
|
|
DisableSensor
|
| Powers down the device to save power.
|
- VOID
|
Return
|
|
SetIntegrationTime
|
| Controls the integration time. 0 = 700mS / 1 = 154mS / 2 = 101mS / 3 = 50mS / 4 = 24mS / 5 = 2.4mS
|
- BYTE
|
Setting
|
| Range: 0 to 5
|
- VOID
|
Return
|
|
Initialise
|
| Initialise the sensor configuration as set by the component properties. Sets the default intigration time and gain as well as enable the sensor.
|
- VOID
|
Return
|
Property reference
|
Properties
|
|
Sensor Settings
|
|
Integration Time
|
| Length of time period used to sample the sensor frequency (longer is more accurate)
|
|
Gain
|
| Length of time period used to sample the sensor frequency (longer is more accurate)
|
|
I2C Settings
|
|
Channel
|
| Channel selection
|
|
Baud Select
|
| Baud rate option selector
|
|
Baud Rate
|
| Baud rate to be used
|
|
Stop Delay
|
| On older microcontroller devices there is a potential for the I2C hardware channel to lock up if there is not a 10ms delay between an I2C stop event and the next I2C start event. Most modern microcontrollers will not have a problem so this property can be disabled to speed up the I2C communications.
|
|
SDA
|
| Pin used for SDA (data signal)
|
|
SCL
|
| Pin used for SCL (clock signal)
|
|
Simulation
|
|
Simulation Type
|
| 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.
|
==Macro reference==
|
ControlInterrupt
|
| Enables or Disables the Interrupt pin to fire when the light levels are inside the interrupt limits.
|
- BYTE
|
Enable
|
| Range: 0 to 1 - 0=Interrupt Off / 1=Interrupt On
|
- UINT
|
LowLevel
|
|
|
- UINT
|
HighLevel
|
|
|
- VOID
|
Return
|
|
SetGain
|
| Controls the gain. 0x00 = 1X 0x01 = 4X 0x02 = 16X 0x03 = 60X
|
- BYTE
|
Setting
|
| Range: 0 to 3
|
- VOID
|
Return
|
|
ClearInterrupt
|
| Clears the interrupt flag allowing the device to interrupt again.
|
- VOID
|
Return
|
|
CalculateTemp
|
| Uses the RGB values stored in RAM from the last Sample to calculate the colour temperature in degrees Kelvin.
|
- UINT
|
Return
|
|
EnableSensor
|
| Powers up the device ready for taking colour readings.
|
- VOID
|
Return
|
|
CalculateLux
|
| Uses the RGB values stored in RAM from the last Sample to calculate the luminance in lux.
|
- UINT
|
Return
|
|
SampleSensor
|
| Reads the raw colour channels from the sensor and stores the readings into RAM to be collected by the ReadDataChannel macro.
|
- VOID
|
Return
|
|
ReadDataChannel
|
| 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.
|
- BYTE
|
ColourChannel
|
| Range: 0 to 3 - 0=Red, 1=Green, 2=Blue, 3=Clear
|
- UINT
|
Return
|
|
DisableSensor
|
| Powers down the device to save power.
|
- VOID
|
Return
|
|
SetIntegrationTime
|
| Controls the integration time. 0 = 700mS / 1 = 154mS / 2 = 101mS / 3 = 50mS / 4 = 24mS / 5 = 2.4mS
|
- BYTE
|
Setting
|
| Range: 0 to 5
|
- VOID
|
Return
|
|
Initialise
|
| Initialise the sensor configuration as set by the component properties. Sets the default intigration time and gain as well as enable the sensor.
|
- VOID
|
Return
|
Property reference
|
Properties
|
|
Sensor Settings
|
|
Integration Time
|
| Length of time period used to sample the sensor frequency (longer is more accurate)
|
|
Gain
|
| Length of time period used to sample the sensor frequency (longer is more accurate)
|
|
I2C Settings
|
|
Channel
|
| Channel selection
|
|
Baud Select
|
| Baud rate option selector
|
|
Baud Rate
|
| Baud rate to be used
|
|
Stop Delay
|
| On older microcontroller devices there is a potential for the I2C hardware channel to lock up if there is not a 10ms delay between an I2C stop event and the next I2C start event. Most modern microcontrollers will not have a problem so this property can be disabled to speed up the I2C communications.
|
|
SDA
|
| Pin used for SDA (data signal)
|
|
SCL
|
| Pin used for SCL (clock signal)
|
|
Simulation
|
|
Simulation Type
|
| 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.
|
==Macro reference==
|
ControlInterrupt
|
| Enables or Disables the Interrupt pin to fire when the light levels are inside the interrupt limits.
|
- BYTE
|
Enable
|
| Range: 0 to 1 - 0=Interrupt Off / 1=Interrupt On
|
- UINT
|
LowLevel
|
|
|
- UINT
|
HighLevel
|
|
|
- VOID
|
Return
|
|
SetGain
|
| Controls the gain. 0x00 = 1X 0x01 = 4X 0x02 = 16X 0x03 = 60X
|
- BYTE
|
Setting
|
| Range: 0 to 3
|
- VOID
|
Return
|
|
ClearInterrupt
|
| Clears the interrupt flag allowing the device to interrupt again.
|
- VOID
|
Return
|
|
CalculateTemp
|
| Uses the RGB values stored in RAM from the last Sample to calculate the colour temperature in degrees Kelvin.
|
- UINT
|
Return
|
|
EnableSensor
|
| Powers up the device ready for taking colour readings.
|
- VOID
|
Return
|
|
CalculateLux
|
| Uses the RGB values stored in RAM from the last Sample to calculate the luminance in lux.
|
- UINT
|
Return
|
|
SampleSensor
|
| Reads the raw colour channels from the sensor and stores the readings into RAM to be collected by the ReadDataChannel macro.
|
- VOID
|
Return
|
|
ReadDataChannel
|
| 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.
|
- BYTE
|
ColourChannel
|
| Range: 0 to 3 - 0=Red, 1=Green, 2=Blue, 3=Clear
|
- UINT
|
Return
|
|
DisableSensor
|
| Powers down the device to save power.
|
- VOID
|
Return
|
|
SetIntegrationTime
|
| Controls the integration time. 0 = 700mS / 1 = 154mS / 2 = 101mS / 3 = 50mS / 4 = 24mS / 5 = 2.4mS
|
- BYTE
|
Setting
|
| Range: 0 to 5
|
- VOID
|
Return
|
|
Initialise
|
| Initialise the sensor configuration as set by the component properties. Sets the default intigration time and gain as well as enable the sensor.
|
- VOID
|
Return
|
Property reference
|
Properties
|
|
Sensor Settings
|
|
Integration Time
|
| Length of time period used to sample the sensor frequency (longer is more accurate)
|
|
Gain
|
| Length of time period used to sample the sensor frequency (longer is more accurate)
|
|
I2C Settings
|
|
Channel
|
| Channel selection
|
|
Baud Select
|
| Baud rate option selector
|
|
Baud Rate
|
| Baud rate to be used
|
|
Stop Delay
|
| On older microcontroller devices there is a potential for the I2C hardware channel to lock up if there is not a 10ms delay between an I2C stop event and the next I2C start event. Most modern microcontrollers will not have a problem so this property can be disabled to speed up the I2C communications.
|
|
SDA
|
| Pin used for SDA (data signal)
|
|
SCL
|
| Pin used for SCL (clock signal)
|
|
Simulation
|
|
Simulation Type
|
| 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.
|