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

From Flowcode Help
Revision as of 17:27, 9 November 2022 by Wiki bot (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search
Author Matrix TSL
Version 1.5
Category LEDs


RGB 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.

Component Pack

BASICIO

Detailed description

1D Configuration

In the 1D configuration each LED simply follows on from the last in a chain.

LED 1D x.png


2D Configuration

In the 2D configuration each LED follows on from the last in a chain which travels back and forth through the columns a row at a time.

LED 2D x.png


3D Configuration

In the 3D configuration each layer follows the 2D configuration with each layer then following on by mirroring the layer below. First layer connections are shown in Red and second layer connections are shown in Blue.

LED 3D x.png


3V3 Microcontrollers

Note you may have to voltage shift the micro controller control pins to meet the 0.7 * VDD minimum requirement. E.g. if VDD is 5V then the input voltage needs to be at least 3.5V.

A simple buffer IC could be used to do the voltage shifting.

Examples

RGB Mood Light

A simple example using three potentiometers to set the individual Red, Green and Blue channels of the LED colour. FC6 Icon.png MoodLight MoodLight2.jpg


Animated Light

A simple example which picks a random colour assigns it to the first LED, then shifts and repeats. FC6 Icon.png AnimatedLightStrip AnimLight.jpg

Downloadable macro reference

Fc9-comp-macro.png 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.  
Fc9-f32-icon.png - FLOAT Scaler
Range: 0.0 to 1.0 Default: 1.0, 0 = Off, 0.5 = Half Brightness, 1.0 = Full Brightness 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png GetLEDColour
Sets the colour of a single LED in RAM as a 1D array. 
Fc9-u16-icon.png - UINT LED
LED to change the colour / Range: 0 to (LED Count - 1) 
Fc9-u8-icon.png - BYTE ColIdx
0 = Red, 1 = Green, 2 = Blue 
Fc9-u8-icon.png - BYTE Return


Fc9-comp-macro.png OutputLow
 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png 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.  
Fc9-u8-icon.png - BYTE Scaler
Range: 0 to 255 Default: 255, 0 = Off, 128 = Half Brightness, 255 = Full Brightness 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png Delay_T0L
 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png DrawLine2D
Draws a line on a 2D array of LEDs 
Fc9-u16-icon.png - UINT X1
Start X Coordinate 
Fc9-u16-icon.png - UINT Y1
Start Y Coordinate 
Fc9-u16-icon.png - UINT X2
End X Coordinate 
Fc9-u16-icon.png - UINT Y2
End Y Coordinate 
Fc9-u8-icon.png - BYTE R
Red colour channel 
Fc9-u8-icon.png - BYTE G
Green colour channel 
Fc9-u8-icon.png - BYTE B
Blue colour channel 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png OutputHigh
 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png SetLEDColour
Sets the colour of a single LED in RAM as a 1D array. 
Fc9-u16-icon.png - UINT LED
LED to change the colour / Range: 0 to (LED Count - 1) 
Fc9-u8-icon.png - BYTE R
Red Colour Channel 
Fc9-u8-icon.png - BYTE G
Green Colour Channel 
Fc9-u8-icon.png - BYTE B
Blue Colour Channel 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png SetAllLEDColour
Sets the colour of all the LEDs in RAM 
Fc9-u8-icon.png - BYTE R
Red Colour Channel 
Fc9-u8-icon.png - BYTE G
Green Colour Channel 
Fc9-u8-icon.png - BYTE B
Blue Colour Channel 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png Delay_T0H
 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png Delay_T1L
 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png Refresh
Clocks out the current colour data to the LEDs from the values stored in RAM 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png ShiftLEDs1D
Shifts the LED colours in 1D and wraps  
Fc9-u8-icon.png - BYTE Direction
0 = Forwards, 1 = Backwards 
Fc9-u8-icon.png - BYTE DataMode
0=ResetToZero, 1=WrapAroundDisplay, 2=Smear 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png DrawLine3D
Draws a line on a 3D array of LEDs 
Fc9-u16-icon.png - UINT X1
Start X Coordinate 
Fc9-u16-icon.png - UINT Y1
Start Y Coordinate 
Fc9-u16-icon.png - UINT Z1
Start Z Coordinate 
Fc9-u16-icon.png - UINT X2
End X Coordinate 
Fc9-u16-icon.png - UINT Y2
End Y Coordinate 
Fc9-u16-icon.png - UINT Z2
End Z Coordinate 
Fc9-u8-icon.png - BYTE R
Red Colour Channel 
Fc9-u8-icon.png - BYTE G
Green Colour Channel 
Fc9-u8-icon.png - BYTE B
Blue Colour Channel 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png Delay_T1H
 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png GetLEDIndex2D
Sets the index of a single LED in RAM as a 2D array. 
Fc9-u16-icon.png - UINT X
LED Column to change the colour / Range: 0 to (LED Column - 1) 
Fc9-u16-icon.png - UINT Y
LED Row to change the colour / Range: 0 to (LED Row - 1) 
Fc9-u16-icon.png - UINT Return


Fc9-comp-macro.png DrawRectangle2D
Draws a basic 2D rectangle onto the LEDs 
Fc9-u8-icon.png - BYTE X1
 
Fc9-u8-icon.png - BYTE Y1
 
Fc9-u8-icon.png - BYTE X2
 
Fc9-u8-icon.png - BYTE Y2
 
Fc9-u8-icon.png - BYTE DrawStyle
Sets the draw style - 0=Soild, 1=Edge, 2=Corners 
Fc9-u8-icon.png - BYTE R
 
Fc9-u8-icon.png - BYTE G
 
Fc9-u8-icon.png - BYTE B
 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png ShiftLEDs2D
Shifts the contents of the display by the number of vertices specified ***Please Note that Wrap mode is currently unavailable*** 
Fc9-s16-icon.png - INT X
Number of pixels to shift the display -1 to 1 / 0 = No Shift 
Fc9-s16-icon.png - INT Y
Number of pixels to shift the display -1 to 1 / 0 = No Shift 
Fc9-u8-icon.png - BYTE DataMode
0=ResetToZero, 1=WrapAroundDisplay, 2=Smear 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png GetLEDIndex3D
Gets the index of a single LED in RAM as a 3D array. 
Fc9-u16-icon.png - UINT X
LED Column to change the colour / Range: 0 to (LED Column - 1) 
Fc9-u16-icon.png - UINT Y
LED Row to change the colour / Range: 0 to (LED Row - 1) 
Fc9-u16-icon.png - UINT Z
LED Layer to change the colour / Range: 0 to (LED Layer - 1) 
Fc9-u16-icon.png - UINT Return


Fc9-comp-macro.png DrawCuboid3D
Draws a basic 3D cuboid onto the LEDs 
Fc9-u8-icon.png - BYTE X1
Start X pixel coordinate 
Fc9-u8-icon.png - BYTE Y1
Start Y pixel coordinate 
Fc9-u8-icon.png - BYTE Z1
Start Z pixel coordinate 
Fc9-u8-icon.png - BYTE X2
End X pixel coordinate 
Fc9-u8-icon.png - BYTE Y2
End Y pixel coordinate 
Fc9-u8-icon.png - BYTE Z2
End Z pixel coordinate 
Fc9-u8-icon.png - BYTE DrawStyle
Sets the draw style - 0=Soild, 1=Edge, 2=Corners 
Fc9-u8-icon.png - BYTE R
Red Colour Channel 
Fc9-u8-icon.png - BYTE G
Green Colour Channel 
Fc9-u8-icon.png - BYTE B
White Colour Channel 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png 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. 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png ShiftLEDs3D
Shifts the contents of the display by the number of vertices specified ***Please Note that Wrap mode is currently unavailable*** 
Fc9-s16-icon.png - INT X
Number of pixels to shift the display -1 to 1 / 0 = No Shift 
Fc9-s16-icon.png - INT Y
Number of pixels to shift the display -1 to 1 / 0 = No Shift 
Fc9-s16-icon.png - INT Z
Number of pixels to shift the display -1 to 1 / 0 = No Shift 
Fc9-u8-icon.png - BYTE DataMode
0=ResetToZero, 1=WrapAroundDisplay, 2=Smear 
Fc9-void-icon.png - VOID Return



Property reference

Fc9-prop-icon.png Properties
Fc9-conn-icon.png Controller IC
Fc9-type-16-icon.png 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. 
Fc9-type-16-icon.png Data Order
Configures the order the colour data is clocked out to the LEDs 
Fc9-type-15-icon.png Reset Time (uS)
Blanking reset period to reset the LED shift chain and start from the beginning 
Fc9-type-15-icon.png T0H (uS)
Logic 0 high time in microseconds 
Fc9-type-15-icon.png T0L (uS)
Logic 0 low time in microseconds 
Fc9-type-15-icon.png T1H (uS)
Logic 1 high time in microseconds 
Fc9-type-15-icon.png T1L (uS)
Logic 1 low time in microseconds 
Fc9-conn-icon.png LED Properties
Fc9-type-16-icon.png 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 
Fc9-type-21-icon.png LED Count
Total number of LEDs in the design 
Fc9-type-15-icon.png Column Spacing
X Spacing Between LEDs on the Panel 
Fc9-conn-icon.png Connections
Fc9-type-5-icon.png Data Pin
LED Data Pin - Connected to the Data In pin of the first WS821x IC.