Component: RGB LED WS2811 WS2812 APA106 (Outputs: LEDs)

From Flowcode Help
Revision as of 10:31, 9 May 2018 by BenR (talk | contribs) (XML import)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search


Author Matrix TSL
Version 1.5 (Release)
Category Outputs: LEDs


Image NeoPixel LED WS2811 WS2812 APA106 component

A simple chained RGB LED controller IC allowing multiple LEDs to be controlled using a serial data stream. Compatible with the WS2811, WS2812, WS2812B, APA104 and APA106 Type Controller ICs. Allows RGB LEDs to be driven with full 24-bit colour depth. 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.

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 = Red, 1 = Green, 2 = Blue


Return value

BYTE


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

UINT


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

UINT


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 Controller

This property is of type Fixed list of ints and can be referenced with the variable name 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

This property is of type Fixed list of ints and can be referenced with the variable name DataOrder.

Configures the order the colour data is clocked out to the LEDs

Reset Time (uS)

This property is of type Floating point and can be referenced with the variable name Reset_Time.

Blanking reset period to reset the LED shift chain and start from the beginning

T0H (uS)

This property is of type Floating point and can be referenced with the variable name T0H.

Logic 0 high time in microseconds

T0L (uS)

This property is of type Floating point and can be referenced with the variable name T0L.

Logic 0 low time in microseconds

T1H (uS)

This property is of type Floating point and can be referenced with the variable name T1H.

Logic 1 high time in microseconds

T1L (uS)

This property is of type Floating point and can be referenced with the variable name T1L.

Logic 1 low time in microseconds

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 under 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 X axis if the LEDs are wired from the upper most side of the display.

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 WS821x IC.