| Author
|
Matrix TSL
|
| Version
|
1.5
|
| Category
|
LEDs
|
RGB LED SK6812 RGBW component
A simple chained RGBW LED controller IC allowing multiple LEDs to be controlled using a serial data stream. Compatible with the SK6812 RGBW Type Controller ICs. Allows RGBW LEDs to be driven with full 24-bit colour depth plus 8-bit white channel. Allows single chains, 2D arrays and 3D cube formations to be simulated. Requires a high speed microcontroller to generate the critical timings to drive the device.
Detailed description
No detailed description exists yet for this component
Examples
LEDs can be wired either active high or active low. The LED components should each have a property allowing you to configure which LED type your using.
An active high LED will light when the microcontroller pin is outputting a logic 1 and be off when the microcontroller pin is outputting a logic 0 or in input mode.
An active low LED will light when the microcontroller pin is outputting a logic 0 and be off when the microcontroller pin is outputting a logic 1 or in input mode.
The series resistor can be on either side of the LED and acts to protect the LED from damage due to excess current. The value of resistor used can be changed based on the brightness of the LED and power consumption.
This LED Calculator tool is a good resource for calculating the correct LED series protection resistor.
LED Resistor Calculator Tool
Downloadable macro reference
|
SetBrightness
|
| Allows the output colour brightness of the LEDs to be scaled down. For example to save current usage or to reduce brightness in dark environments.
|
| [[File:]] -
|
Scaler
|
| Range: 0.0 to 1.0 Default: 1.0, 0 = Off, 0.5 = Half Brightness, 1.0 = Full Brightness
|
- VOID
|
Return
|
|
GetLEDColour
|
| Sets the colour of a single LED in RAM as a 1D array.
|
- UINT
|
LED
|
| LED to change the colour / Range: 0 to (LED Count - 1)
|
- BYTE
|
ColIdx
|
| 0 = Red, 1 = Green, 2 = Blue, 3 = White
|
- BYTE
|
Return
|
|
OutputLow
|
|
|
- VOID
|
Return
|
|
SetBrightnessByte
|
| Allows the output colour brightness of the LEDs to be scaled down. For example to save current usage or to reduce brightness in dark environments.
|
- BYTE
|
Scaler
|
| Range: 0 to 255 Default: 255, 0 = Off, 128 = Half Brightness, 255 = Full Brightness
|
- VOID
|
Return
|
|
Delay_T0L
|
|
|
- VOID
|
Return
|
|
DrawLine2D
|
| Draws a line on a 2D array of LEDs
|
- UINT
|
X1
|
| Start X Coordinate
|
- UINT
|
Y1
|
| Start Y Coordinate
|
- UINT
|
X2
|
| End X Coordinate
|
- UINT
|
Y2
|
| End Y Coordinate
|
- BYTE
|
R
|
| Red colour channel
|
- BYTE
|
G
|
| Green colour channel
|
- BYTE
|
B
|
| Blue colour channel
|
- BYTE
|
W
|
| White colour channel
|
- VOID
|
Return
|
|
OutputHigh
|
|
|
- VOID
|
Return
|
|
SetLEDColour
|
| Sets the colour of a single LED in RAM as a 1D array.
|
- UINT
|
LED
|
| LED to change the colour / Range: 0 to (LED Count - 1)
|
- BYTE
|
R
|
| Red Colour Channel
|
- BYTE
|
G
|
| Green Colour Channel
|
- BYTE
|
B
|
| Blue Colour Channel
|
- BYTE
|
W
|
| White Colour Channel
|
- VOID
|
Return
|
|
SetAllLEDColour
|
| Sets the colour of all the LEDs in RAM
|
- BYTE
|
R
|
| Red Colour Channel
|
- BYTE
|
G
|
| Green Colour Channel
|
- BYTE
|
B
|
| Blue Colour Channel
|
- BYTE
|
W
|
| White colour channel
|
- VOID
|
Return
|
|
Delay_T0H
|
|
|
- VOID
|
Return
|
|
Delay_T1L
|
|
|
- VOID
|
Return
|
|
Refresh
|
| Clocks out the current colour data to the LEDs from the values stored in RAM
|
- VOID
|
Return
|
|
ShiftLEDs1D
|
| Shifts the LED colours in 1D and wraps
|
- BYTE
|
Direction
|
| 0 = Forwards, 1 = Backwards
|
- BYTE
|
DataMode
|
| 0=ResetToZero, 1=WrapAroundDisplay, 2=Smear
|
- VOID
|
Return
|
|
DrawLine3D
|
| Draws a line on a 3D array of LEDs
|
- UINT
|
X1
|
| Start X Coordinate
|
- UINT
|
Y1
|
| Start Y Coordinate
|
- UINT
|
Z1
|
| Start Z Coordinate
|
- UINT
|
X2
|
| End X Coordinate
|
- UINT
|
Y2
|
| End Y Coordinate
|
- UINT
|
Z2
|
| End Z Coordinate
|
- BYTE
|
R
|
| Red Colour Channel
|
- BYTE
|
G
|
| Green Colour Channel
|
- BYTE
|
B
|
| Blue Colour Channel
|
- BYTE
|
W
|
| White Colour Channel
|
- VOID
|
Return
|
|
Delay_T1H
|
|
|
- VOID
|
Return
|
|
GetLEDIndex2D
|
| Sets the index of a single LED in RAM as a 2D array.
|
- UINT
|
X
|
| LED Column to change the colour / Range: 0 to (LED Column - 1)
|
- UINT
|
Y
|
| LED Row to change the colour / Range: 0 to (LED Row - 1)
|
- UINT
|
Return
|
|
DrawRectangle2D
|
| Draws a basic 2D rectangle onto the LEDs
|
- BYTE
|
X1
|
|
|
- BYTE
|
Y1
|
|
|
- BYTE
|
X2
|
|
|
- BYTE
|
Y2
|
|
|
- BYTE
|
DrawStyle
|
| Sets the draw style - 0=Soild, 1=Edge, 2=Corners
|
- BYTE
|
R
|
|
|
- BYTE
|
G
|
|
|
- BYTE
|
B
|
|
|
- BYTE
|
W
|
| White Colour Channel
|
- VOID
|
Return
|
|
ShiftLEDs2D
|
| Shifts the contents of the display by the number of vertices specified ***Please Note that Wrap mode is currently unavailable***
|
| [[File:]] -
|
X
|
| Number of pixels to shift the display -1 to 1 / 0 = No Shift
|
| [[File:]] -
|
Y
|
| Number of pixels to shift the display -1 to 1 / 0 = No Shift
|
- BYTE
|
DataMode
|
| 0=ResetToZero, 1=WrapAroundDisplay, 2=Smear
|
- VOID
|
Return
|
|
GetLEDIndex3D
|
| Gets the index of a single LED in RAM as a 3D array.
|
- UINT
|
X
|
| LED Column to change the colour / Range: 0 to (LED Column - 1)
|
- UINT
|
Y
|
| LED Row to change the colour / Range: 0 to (LED Row - 1)
|
- UINT
|
Z
|
| LED Layer to change the colour / Range: 0 to (LED Layer - 1)
|
- UINT
|
Return
|
|
DrawCuboid3D
|
| Draws a basic 3D cuboid onto the LEDs
|
- BYTE
|
X1
|
| Start X pixel coordinate
|
- BYTE
|
Y1
|
| Start Y pixel coordinate
|
- BYTE
|
Z1
|
| Start Z pixel coordinate
|
- BYTE
|
X2
|
| End X pixel coordinate
|
- BYTE
|
Y2
|
| End Y pixel coordinate
|
- BYTE
|
Z2
|
| End Z pixel coordinate
|
- BYTE
|
DrawStyle
|
| Sets the draw style - 0=Soild, 1=Edge, 2=Corners
|
- BYTE
|
R
|
| Red Colour Channel
|
- BYTE
|
G
|
| Green Colour Channel
|
- BYTE
|
B
|
| White Colour Channel
|
- BYTE
|
W
|
| White Colour Channel
|
- VOID
|
Return
|
|
Initialise
|
| Inisialises the RGB colour RAM to 0,0,0 = LED Off and clocks out the data to initialise all the LED ICs in the chain.
|
- VOID
|
Return
|
|
ShiftLEDs3D
|
| Shifts the contents of the display by the number of vertices specified ***Please Note that Wrap mode is currently unavailable***
|
| [[File:]] -
|
X
|
| Number of pixels to shift the display -1 to 1 / 0 = No Shift
|
| [[File:]] -
|
Y
|
| Number of pixels to shift the display -1 to 1 / 0 = No Shift
|
| [[File:]] -
|
Z
|
| Number of pixels to shift the display -1 to 1 / 0 = No Shift
|
- BYTE
|
DataMode
|
| 0=ResetToZero, 1=WrapAroundDisplay, 2=Smear
|
- VOID
|
Return
|
|
Initialise
|
| Sets up the data memory and draws the simulated LED cube on the panel.
|
- VOID
|
Return
|
|
Initialise
|
| Starts up the formula flowcode PWM for motor control and performs the wait for button press
|
- VOID
|
Return
|
|
Initialise
|
| The Init macro must be called once to initialise the Graphical LCD display before any other Graphical LCD component macros are called.
|
- VOID
|
Return
|
|
Initialise
|
| The Init macro must be called once to initialise the Graphical LCD display before any other Graphical LCD component macros are called.
|
- VOID
|
Return
|
|
Initialise
|
| The Init macro must be called once to initialise the Graphical LCD display before any other Graphical LCD component macros are called.
|
- VOID
|
Return
|
|
Initialise
|
| The Init macro must be called once to initialise the Graphical LCD display before any other Graphical LCD component macros are called.
|
- VOID
|
Return
|
|
Initialise
|
| Resets and initialises the Internet E-Block. It sets up the gateway address, subnet mask, device IP address and device MAC address as defined in the properties of the Flowcode component. This macro must be called before any other TCP_IP component macros
|
- VOID
|
Return
|
|
Initialise
|
| Resets and initialises the Internet E-Block. It sets up the gateway address, subnet mask, device IP address and device MAC address as defined in the properties of the Flowcode component. This macro must be called before any other TCP_IP component macros
|
- VOID
|
Return
|
|
Initialise
|
| Resets and initialises the Internet E-Block. It sets up the gateway address, subnet mask, device IP address and device MAC address as defined in the properties of the Flowcode component. This macro must be called before any other TCP_IP component macros
|
- VOID
|
Return
|
|
MODPMSHAPE
|
| Sets PM waveform shape to; 0 = SINE, 1 = SQUARE, 2 = RAMPUP, 3 = RAMPDN, 4 = TRIANG, 5 = NOISE, 6 = DC, 7 = SINC, 8 = EXPRISE, 9 = LOGRISE, 10 = ARB1, 11 = ARB2, 12 = ARB3, 13= ARB4.
|
- BYTE
|
Shape
|
| Sets PM waveform shape (1 = SINE, 2 = SQUARE, 3 = RAMPUP, 4 = RAMPDN, 5 = TRIANG, 6 = NOISE, 7 = DC, 8 = SINC, 9 = EXPRISE, 10 = LOGRISE, 11 = ARB1, 12 = ARB2, 13 = ARB3, 14= ARB4).
|
- VOID
|
Return
|
|
ARB4
|
| Loads the binary-data to an existing arbitrary waveform memory location ARB4.
|
- BYTE
|
Waveform
|
|
|
- VOID
|
Return
|
|
CLKSRRet
|
| Returns the clock source <INT> or <EXT>.
|
| [[File:]] -
|
Return
|
|
MODPMDEV
|
| Sets PM waveform deviation to <nrf> degrees. (Lower limit: -360° - Upper limit: 360°).
|
| [[File:]] -
|
Degrees
|
| Sets PM waveform deviation in degrees (-360 - 360).
|
- VOID
|
Return
|
|
MSTLOCK
|
| Sends signal to SLAVE generator to get synchronised
|
- VOID
|
Return
|
|
HILVL
|
| Sets the amplitude-high-level to <nrf> Volts. (Lower limit: -0.490 V - Upper limit: 5.000 V).
|
| [[File:]] -
|
HighLevel
|
| Sets the amplitude-high-level in Volts(V) (-0.490 V - 5.000 V).
|
- VOID
|
Return
|
|
ARB3
|
| Loads the binary-data to an existing arbitrary waveform memory location ARB3.
|
- UINT
|
Waveform
|
|
|
- VOID
|
Return
|
|
WAVE
|
| Sets the waveform type. 0 = SINE, 1 = SQUARE, 2 = RAMP, 3 = TRIANG, 4 = PULSE, 5 = NOISE, 6 = ARB
|
- BYTE
|
WaveType
|
| 0 = SINE, 1 = SQUARE, 2 = RAMP, 3 = TRIANG, 4 = PULSE, 5 = NOISE, 6 = ARB.
|
- VOID
|
Return
|
|
CALADJ
|
| Adjust the selected calibration value by <nrf> (Lower limit: -100 - Upper limit: 100).
|
| [[File:]] -
|
Calibrate
|
| Adjust the selected calibration value (-100 - 100).
|
- VOID
|
Return
|
|
STBRet
|
| Returns the value of the Status Byte Register in <nr1> numeric format.
|
- BYTE
|
Return
|
|
ARB2
|
| Loads the binary-data to an existing arbitrary waveform memory location ARB2.
|
- UINT
|
Waveform
|
|
|
- VOID
|
Return
|
|
EERRet
|
| Query and clear execution error number register.
|
- STRING
|
Return
|
|
MODFMSRC
|
| Sets FM waveform source to; 0 INT, 1 = EXT.
|
| [[File:]] -
|
Source
|
| Sets FM waveform source (0 = INT, 1 = EXT).
|
- VOID
|
Return
|
|
MODAMFREQ
|
| Sets AM waveform frequency to <nrf> Hz. (Lower limit: 1uHz - Upper limit: 20kHz).
|
| [[File:]] -
|
Frequency
|
| Sets AM waveform frequency in Hertz(Hz) (1uHz - 20kHz).
|
- VOID
|
Return
|
|
ESE
|
| Sets the Standard Event Status Enable Register to the value of <nrf>.
|
- BYTE
|
Value
|
| Value of register 0-255
|
- VOID
|
Return
|
|
ARB1
|
| Loads the binary-data to an existing arbitrary waveform memory location ARB1.
|
- UINT
|
Waveform
|
| 16 Bit binary number for arbitrary waveform.
|
- VOID
|
Return
|
|
ARB4DEFRet
|
| Returns user specified waveform name, waveform pint interpolation state and waveform length of ARB4.
|
- STRING
|
Return
|
|
CLS
|
| Clears status byte register of the interface.
|
- VOID
|
Return
|
|
MSTRELOCK
|
| Resynchronises the two generators in MASTER-SLAVE mode.
|
- VOID
|
Return
|
|
NOISLVL
|
| Sets the output noise level to <nr1> %. (Lower limit: 0% - Upper limit: 50%)
|
- BYTE
|
Percent
|
| Sets the output noise level in percent. (0 - 50)
|
- VOID
|
Return
|
|
LOCKMODE
|
| Sets the synchronising mode to; 0 = MASTER, 1 = SLAVE, 2 = INDEP.
|
- BYTE
|
Mode
|
| Sets the synchronising mode (0 = MASTER, 1 = SLAVE, 2 = INDEP).
|
- VOID
|
Return
|
|
ADDRESSRet
|
| Returns the instruments address
|
| [[File:]] -
|
Return
|
|
MODPMSRC
|
| Sets PM waveform source to; 0 INT, 1 = EXT.
|
| [[File:]] -
|
Source
|
| Sets PM waveform source (0 = INT, 1 = EXT).
|
- VOID
|
Return
|
|
MODPWMSRC
|
| Sets PWM waveform source to; 0 = INT, 1 = EXT.
|
| [[File:]] -
|
Source
|
| Sets PWM waveform source (0 = INT, 1 = EXT).
|
- VOID
|
Return
|
|
MOD
|
| Sets modulation to; 0 = OFF, 1 = AM, 2 = FM, 3 = PM, 4 = FSK, 5 = PWM.
|
- BYTE
|
Modulation
|
| Sets modulation (0 = OFF, 1 = AM, 2 = FM, 3 = PM, 4 = FSK, 5 = PWM).
|
- VOID
|
Return
|
|
ISTRet
|
| Returns IST local message as defined by IEEE Std. 488.2. The syntax of the response is 0<rmt>, if the local message is false, or 1<rmt>, if the local message is true.
|
| [[File:]] -
|
Return
|
|
LRNRet
|
| Returns the complete setup of the instrument as a binary data block
|
| [[File:]] -
|
Return
|
|
OPCRet
|
| Query Operation Complete status. The response is always 1<rmt> and will be available immediately the command is executed because all commands are sequential.
|
| [[File:]] -
|
Return
|
|
SWPTYPE
|
| Sets the sweep type to; 0 = LINUP, 1 = LINDN, 2 = LINUPDN, 3 = LINDNUP, 4 = LOGUP, 5 = LOGDN, 6 = LOGUPDN, 7 = LOGDNUP.
|
- BYTE
|
Type
|
| Set the sweep type (0 = LINUP, 1 = LINDN, 2 = LINUPDN, 3 = LINDNUP, 4 = LOGUP, 5 = LOGDN, 6 = LOGUPDN, 7 = LOGDNUP).
|
- VOID
|
Return
|
|
PULSRANGE
|
| Sets PWM waveform source to <1>, <2> or <3>; 1 = 1, 2 = 2, 3 = 3.
|
- BYTE
|
Range
|
| Sets the pulse rise and fall range. (1, 2 or 3)
|
- VOID
|
Return
|
|
TSTRet
|
| The generator has no self test capability and the response is always 0 <rmt>.
|
| [[File:]] -
|
Return
|
|
BSTTRGPOL
|
| Sets the burst trigger slope to; 0 = POS, 1 = NEG.
|
| [[File:]] -
|
Slope
|
| Set the burst trigger slope (0 = POS, 1 = NEG).
|
- VOID
|
Return
|
|
ARB3Ret
|
| Returns the binary-data from an existing abbitrary wavefrom memory location.
|
- UINT
|
Return
|
|
BSTPHASE
|
| Sets the burst phase to <nrf> degrees. (Lower limit: -360 - Upper limit: 360)
|
| [[File:]] -
|
Degrees
|
| Sets the burst phase in degrees (-360 - 360)
|
- VOID
|
Return
|
|
IDNRet
|
| Returns the instrument identification. The IDN is saved to the variable passed from the function 'ReturnIDN'. The return parameter is TRUE when the IDN is successfully returned.
|
- STRING
|
ReturnIDN
|
|
|
- STRING
|
Return
|
|
SWPTRGPER
|
| Sets the sweep trigger period to <nrf> seconds
|
| [[File:]] -
|
Seconds
|
| Set the sweep trigger period in seconds.
|
- VOID
|
Return
|
|
PULSDLY
|
| Sets the waveform delay to <nrf> sec
|
| [[File:]] -
|
Sec
|
|
|
- VOID
|
Return
|
|
Initialise
|
| Opens the COM port ready for communications.
|
- VOID
|
Return
|
Property reference
|
Properties
|
|
LED Controller
|
| Allows the user to select which LED controller IC they are using. The different controller ICs all work the same way but have different timing characteristics.
|
|
Data Order
|
| Configures the order the colour data is clocked out to the LEDs
|
|
Reset Time (uS)
|
| Blanking reset period to reset the LED shift chain and start from the beginning
|
|
T0H (uS)
|
| Logic 0 high time in microseconds
|
|
T0L (uS)
|
| Logic 0 low time in microseconds
|
|
T1H (uS)
|
| Logic 1 high time in microseconds
|
|
T1L (uS)
|
| Logic 1 low time in microseconds
|
|
LED Arrangement
|
| Controls the arrangement of the LEDs on the panel. 1D - Creates a straight line of LEDs 2D - Creates an X by Y Array of LEDs 3D - Creates an X by Y by Z Array of LEDs
|
|
LED Count
|
| Total number of LEDs in the design
|
|
Arrangement
|
| LEDs will likely be arranged in one of two ways. Parallel = Each row of LEDs run from left to right - easier to address but harder to wire. Alternating = Each row of LEDs runs in an alternating direction - harder to address but easier to wire.
|
|
Column Count
|
| Number of horizontal LEDs - X axis
|
|
Column Spacing
|
| X Spacing Between LEDs on the Panel
|
|
Row Count
|
| Number of vertical LEDs - Y axis
|
|
Row Spacing
|
| Y Spacing Between LEDs on the Panel
|
|
Layer Count
|
| Number of LED layers - Z axis
|
|
Layer Spacing
|
| Z Spacing Between LEDs on the Panel
|
|
Flip X
|
| Flips the X axis if the LEDs are wired from the right hand side of the display.
|
|
Flip Y
|
| Flips the Y axis if the LEDs are wired from the under side of the display.
|
|
Flip Z
|
| Flips the X axis if the LEDs are wired from the upper most side of the display.
|
|
Connections
|
|
Data Pin
|
| LED Data Pin - Connected to the Data In pin of the first WS821x IC.
|
|
Simulations
|