Component: RGB LED WS2801 (Outputs: LEDs)
Author | Matrix TSL |
Version | 2.0 (Release) |
Category | Outputs: LEDs |
Contents
NeoPixel LED WS2801 component
A simple chained RGB LED controller IC allowing multiple LEDs to be controlled using a serial data stream. Allows RGB LEDs to be driven with full 24-bit colour depth. Allows single chains, 2D arrays and 3D cube formations to be simulated. Supports Bit Banged or SPI peripheral based data modes.
Examples
No additional examples
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.
Parameters
- FLOAT Scaler
- Range: 0.0 to 1.0 Default: 1.0, 0 = Off, 0.5 = Half Brightness, 1.0 = Full Brightness
Return value
- This call does not return a value
GetLEDColour
Sets the colour of a single LED in RAM as a 1D array.
Parameters
- UINT LED
- LED to change the colour / Range: 0 to (LED Count - 1)
- BYTE ColIdx
- 0 = R, 1 = G, 2 = B
Return value
DrawLine2D
Draws a line on a 2D array of LEDs
Parameters
- UINT X1
- UINT Y1
- UINT X2
- UINT Y2
- BYTE R
- BYTE G
- BYTE B
Return value
- This call does not return a value
SetAllLEDColour
Sets the colour of all the LEDs in RAM
Parameters
- BYTE R
- BYTE G
- BYTE B
Return value
- This call does not return a value
SetLEDColour
Sets the colour of a single LED in RAM as a 1D array.
Parameters
- UINT LED
- LED to change the colour / Range: 0 to (LED Count - 1)
- BYTE R
- BYTE G
- BYTE B
Return value
- This call does not return a value
Refresh
Clocks out the current colour data to the LEDs from the values stored in RAM
Parameters
- This macro has no parameters
Return value
- This call does not return a value
ShiftLEDs1D
Shifts the LED colours in 1D and wraps
Parameters
- BYTE Direction
- 0 = Forwards, 1 = Backwards
- BYTE DataMode
- 0=ResetToZero, 1=WrapAroundDisplay, 2=Smear
Return value
- This call does not return a value
DrawLine3D
Draws a line on a 3D array of LEDs
Parameters
- UINT X1
- UINT Y1
- UINT Z1
- UINT X2
- UINT Y2
- UINT Z2
- BYTE R
- BYTE G
- BYTE B
Return value
- This call does not return a value
GetLEDIndex2D
Sets the index of a single LED in RAM as a 2D array.
Parameters
- 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)
Return value
DrawRectangle2D
Draws a basic 2D rectangle onto the LEDs
Parameters
- 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
Return value
- This call does not return a value
ShiftLEDs2D
Shifts the contents of the display by the number of vertices specified
- Please Note that Wrap mode is currently unavailable***
Parameters
- INT X
- Number of pixels to shift the display -1 to 1 / 0 = No Shift
- INT Y
- Number of pixels to shift the display -1 to 1 / 0 = No Shift
- BYTE DataMode
- 0=ResetToZero, 1=WrapAroundDisplay, 2=Smear
Return value
- This call does not return a value
GetLEDIndex3D
Gets the index of a single LED in RAM as a 3D array.
Parameters
- 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)
Return value
DrawCuboid3D
Draws a basic 3D cuboid onto the LEDs
Parameters
- BYTE X1
- BYTE Y1
- BYTE Z1
- BYTE X2
- BYTE Y2
- BYTE Z2
- BYTE DrawStyle
- Sets the draw style - 0=Soild, 1=Edge, 2=Corners
- BYTE R
- BYTE G
- BYTE B
Return value
- This call does not return a value
Initialise
Inisialises the RGB colour RAM to 0,0,0 = LED Off and clocks out the data to
initialise all the WS2801 ICs in the chain.
Parameters
- This macro has no parameters
Return value
- This call does not return a value
ShiftLEDs3D
Shifts the contents of the display by the number of vertices specified
- Please Note that Wrap mode is currently unavailable***
Parameters
- INT X
- Number of pixels to shift the display -1 to 1 / 0 = No Shift
- INT Y
- Number of pixels to shift the display -1 to 1 / 0 = No Shift
- INT Z
- Number of pixels to shift the display -1 to 1 / 0 = No Shift
- BYTE DataMode
- 0=ResetToZero, 1=WrapAroundDisplay, 2=Smear
Return value
- This call does not return a value
Simulation macro reference
This component does not contain any simulation macros
Property reference
LED Arrangement
This property is of type Fixed list of ints and can be referenced with the variable name 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
This property is of type Unsigned integer and can be referenced with the variable name LED_Count.
Total number of LEDs in the design
LED Columns
This property is of type Unsigned integer and can be referenced with the variable name LED_Cols.
Number of horizontal LEDs - X axis
Column Spacing
This property is of type Floating point and can be referenced with the variable name x_spacing.
X Spacing Between LEDs on the Panel
LED Rows
This property is of type Unsigned integer and can be referenced with the variable name LED_Rows.
Number of vertical LEDs - Y axis
Row Spacing
This property is of type Floating point and can be referenced with the variable name y_spacing.
Y Spacing Between LEDs on the Panel
LED Layers
This property is of type Unsigned integer and can be referenced with the variable name LED_Layers.
Number of LED layers - Z axis
Layer Spacing
This property is of type Floating point and can be referenced with the variable name z_spacing.
Z Spacing Between LEDs on the Panel
Flip X
This property is of type True or false and can be referenced with the variable name FlipX.
Flips the X axis if the LEDs are wired from the right hand side of the display.
Flip Y
This property is of type True or false and can be referenced with the variable name FlipY.
Flips the Y axis if the LEDs are wired from the bottom side of the display.
Flip Z
This property is of type True or false and can be referenced with the variable name FlipZ.
Flips the Z axis if the LEDs are wired from the upper most side of the display.
Output Mode
This property is of type Fixed list of ints and can be referenced with the variable name Output_Mode.
Sets the output mode used to drive the data to the LEDs
Bit Banged Mode = Allows Any I/O Pin but may be slower
SPI Mode = Fixed SPI Peripheral Pins but may be faster - Note that the SPI MISO pin will not be available for general I/O
Data Pin
This property is of type Single digital pin and can be referenced with the variable name MOSI.
LED Data Pin - Connected to the Data In pin of the first WS8201 IC.
Clock Pin
This property is of type Single digital pin and can be referenced with the variable name CLK.
LED Clock Pin - Connected to the Clock In pin of the first WS8201 IC.
Channel
This property is of type Fixed list of ints and can be referenced with the variable name cal_spi::CHANNEL.
SPI Channel selector
Prescale
This property is of type Fixed list of ints and can be referenced with the variable name cal_spi::PR_SCALE.
Prescale option selector
MOSI
This property is of type Single digital pin and can be referenced with the variable name cal_spi::MOSI.
SPI Data Out Pin SDO - Also Known as Master Out Slave In (MOSI) when used in Master mode.
MISO
This property is of type Single digital pin and can be referenced with the variable name cal_spi::MISO.
SPI Data In Pin SDI - Also Known as Master In Slave Out (MISO) when used in Master mode.
CLK
This property is of type Single digital pin and can be referenced with the variable name cal_spi::CLK.
SPI Clock Pin CLK - The Clock signal is driven by the SPI master.
Scope Traces
This property is of type True or false and can be referenced with the variable name cal_spi::ScopeTraces.
Selects if the scope traces are automatically generated or not
Console Data
This property is of type True or false and can be referenced with the variable name cal_spi::ConsoleData.
Selects if the console data is automatically generated or not
Injector
This property is of type Fixed list of ints and can be referenced with the variable name cal_spi::Injector.
No additional information