Jump to content

Component: RGB Xmas Tree (Misc Circuit): Difference between revisions

From Flowcode Help
No edit summary
No edit summary
Line 17: Line 17:
==Component Source Code==
==Component Source Code==


Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_XmasTree.fcfx FC_Comp_Source_XmasTree.fcfx]
Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_temp/XmasTree.fcfx FC_Comp_Source_temp/XmasTree.fcfx]


Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_XmasTree.fcfx FC_Comp_Source_XmasTree.fcfx]
Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_temp/XmasTree.fcfx FC_Comp_Source_temp/XmasTree.fcfx]


==Detailed description==
==Detailed description==
Line 57: Line 57:


For more information please refer to the [http://www.matrixtsl.com/blog/led-xmas-tree-project-2/ Xmas Tree blog post].
For more information please refer to the [http://www.matrixtsl.com/blog/led-xmas-tree-project-2/ Xmas Tree blog post].




Line 64: Line 66:
==Macro reference==
==Macro reference==


===PlayNote===
===CheckAudio===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''PlayNote'''
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CheckAudio'''
|-
|-
| colspan="2" | Plays a specific note for the length of time specified. 
| colspan="2" | Checks to see if the audio circuit is current outputting a tone. Returns 1 to indicate audio active and 0 to indicate not active. 
|-
|-
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Note
|-
| colspan="2" | 0-59 - 0=C, 1=C#, 2=D, 3=Eb, 4=E, 5=F, 6=F#, 7=G, 8=G#, 9=A, 10=Bb, 11=B, 12=C... 
|-
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | Length
|-
| colspan="2" |  
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="90%" style="border-top: 2px solid #000;" | ''Return''
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}
|}




===WaitAudio===
===CheckSwitch===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''WaitAudio'''
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CheckSwitch'''
|-
|-
| colspan="2" | Checks to see if the audio circuit is current outputting a tone. If it is then the macro will wait until the audio is free again. 
| colspan="2" | Checks to see if the switch is pressed. Returns 1 to indicate a press and 0 to indicate not pressed. 
|-
|-
|-
|-
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Delay
|-
| colspan="2" | Optional ms delay after the audio has stopped playing 0=No Delay 
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="90%" style="border-top: 2px solid #000;" | ''Return''
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}
|}




===SetColours===
===GetLED===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetColours'''
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetLED'''
|-
|-
| colspan="2" | Generates a colour value based on the input colour parameters and asigns it to all of the LEDs. 
| colspan="2" | Directly read the colour of a single LED. Red = 3-bit, Green = 3-bit, Blue = 2-bit 0bBBGGGRRR 
|-
|-
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Red
| width="90%" | LED
|-
|-
| colspan="2" | Red 0=None, 255=Max 
| colspan="2" | LED 0 to NumLEDs - 1 
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Green
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}
 
 
===Initialise===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
|-
|-
| colspan="2" | Green 0=None, 255=Max 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Initialise'''
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| colspan="2" | Starts up the LED PWM and Audio software driver. 
| width="90%" | Blue
|-
|-
| colspan="2" | Blue 0=None, 255=Max 
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
Line 136: Line 127:




===RandomLED===
===JingleBells===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''RandomLED'''
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''JingleBells'''
|-
|-
| colspan="2" | Randomises the colour to a specific LED 
| colspan="2" | Plays the Jingle Bells tune using the audio driver. 
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | LED
|-
|-
| colspan="2" | LED 0 to NumLEDs - 1 
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
Line 194: Line 180:




===SetLED===
===PlayNote===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetLED'''
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''PlayNote'''
|-
|-
| colspan="2" | Directly sets the colour of a single LED. Red = 3-bit, Green = 3-bit, Blue = 2-bit 0bBBGGGRRR 
| colspan="2" | Plays a specific note for the length of time specified. 
|-
|-
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | LED
| width="90%" | Note
|-
|-
| colspan="2" | LED 0 to NumLEDs - 1 
| colspan="2" | 0-59 - 0=C, 1=C#, 2=D, 3=Eb, 4=E, 5=F, 6=F#, 7=G, 8=G#, 9=A, 10=Bb, 11=B, 12=C... 
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | Colour
| width="90%" | Length
|-
|-
| colspan="2" |  
| colspan="2" |  
Line 218: Line 204:




===JingleBells===
===RandomLED===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''JingleBells'''
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''RandomLED'''
|-
|-
| colspan="2" | Plays the Jingle Bells tune using the audio driver. 
| colspan="2" | Randomises the colour to a specific LED 
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}
 
 
===SetLEDs===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetLEDs'''
|-
| colspan="2" | Sets the colour of all the LEDs. Red = 3-bit, Green = 3-bit, Blue = 2-bit 0bBBGGGRRR 
|-
|-
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Colour
| width="90%" | LED
|-
|-
| colspan="2" |  
| colspan="2" | LED 0 to NumLEDs - 1 
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
Line 251: Line 223:




===CheckSwitch===
===RandomLEDs===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CheckSwitch'''
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''RandomLEDs'''
|-
|-
| colspan="2" | Checks to see if the switch is pressed. Returns 1 to indicate a press and 0 to indicate not pressed. 
| colspan="2" | Randomises the colour of all the LEDs 
|-
|-
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="90%" style="border-top: 2px solid #000;" | ''Return''
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}
|}
Line 299: Line 271:




===CheckAudio===
===SetColours===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CheckAudio'''
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetColours'''
|-
| colspan="2" | Generates a colour value based on the input colour parameters and asigns it to all of the LEDs. 
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Red
|-
| colspan="2" | Red 0=None, 255=Max 
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Green
|-
| colspan="2" | Green 0=None, 255=Max 
|-
|-
| colspan="2" | Checks to see if the audio circuit is current outputting a tone. Returns 1 to indicate audio active and 0 to indicate not active. 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Blue
|-
|-
| colspan="2" | Blue 0=None, 255=Max 
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="90%" style="border-top: 2px solid #000;" | ''Return''
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}
|}




===RandomLEDs===
===SetLED===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''RandomLEDs'''
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetLED'''
|-
| colspan="2" | Directly sets the colour of a single LED. Red = 3-bit, Green = 3-bit, Blue = 2-bit 0bBBGGGRRR 
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | LED
|-
| colspan="2" | LED 0 to NumLEDs - 1 
|-
|-
| colspan="2" | Randomises the colour of all the LEDs 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Colour
|-
|-
| colspan="2" |  
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
Line 327: Line 324:




===GetLED===
===SetLEDs===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetLED'''
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetLEDs'''
|-
|-
| colspan="2" | Directly read the colour of a single LED. Red = 3-bit, Green = 3-bit, Blue = 2-bit 0bBBGGGRRR 
| colspan="2" | Sets the colour of all the LEDs. Red = 3-bit, Green = 3-bit, Blue = 2-bit 0bBBGGGRRR 
|-
|-
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | LED
| width="90%" | Colour
|-
|-
| colspan="2" | LED 0 to NumLEDs - 1 
| colspan="2" |  
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="90%" style="border-top: 2px solid #000;" | ''Return''
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}
|}




===Initialise===
===WaitAudio===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Initialise'''
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''WaitAudio'''
|-
| colspan="2" | Checks to see if the audio circuit is current outputting a tone. If it is then the macro will wait until the audio is free again. 
|-
|-
|-
| colspan="2" | Starts up the LED PWM and Audio software driver. 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | Delay
|-
|-
| colspan="2" | Optional ms delay after the audio has stopped playing 0=No Delay 
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID

Revision as of 12:03, 3 February 2023

Author MatrixTSL
Version 1.0
Category Misc Circuit


RGB Xmas Tree component

Component complete with macros and simultion to drive the MatrixTSL RGB Xmas Tree decoration.

Component Source Code

Please click here to download the component source project: FC_Comp_Source_temp/XmasTree.fcfx

Please click here to view the component source code (Beta): FC_Comp_Source_temp/XmasTree.fcfx

Detailed description

No detailed description exists yet for this component

Examples

For more information please refer to the Xmas Tree blog post.




Macro reference

CheckAudio

CheckAudio
Checks to see if the audio circuit is current outputting a tone. Returns 1 to indicate audio active and 0 to indicate not active. 
- BYTE Return


CheckSwitch

CheckSwitch
Checks to see if the switch is pressed. Returns 1 to indicate a press and 0 to indicate not pressed. 
- BYTE Return


GetLED

GetLED
Directly read the colour of a single LED. Red = 3-bit, Green = 3-bit, Blue = 2-bit 0bBBGGGRRR 
- BYTE LED
LED 0 to NumLEDs - 1 
- BYTE Return


Initialise

Initialise
Starts up the LED PWM and Audio software driver. 
- VOID Return


JingleBells

JingleBells
Plays the Jingle Bells tune using the audio driver. 
- VOID Return


MoveToColour

MoveToColour
Generates a colour value based on the input colour parameters and transitions one of the LEDs to the new colour. Remains in the function until the new colour has been reached. 
- BYTE LED
LED 0 to NumLEDs - 1 
- BYTE Red
Red 0=None, 255=Max 
- BYTE Green
Green 0=None, 255=Max 
- BYTE Blue
Blue 0=None, 255=Max 
- UINT TransistionDelay
Delay in milliseconds between each transition 
- VOID Return


PlayNote

PlayNote
Plays a specific note for the length of time specified. 
- BYTE Note
0-59 - 0=C, 1=C#, 2=D, 3=Eb, 4=E, 5=F, 6=F#, 7=G, 8=G#, 9=A, 10=Bb, 11=B, 12=C... 
- UINT Length
 
- VOID Return


RandomLED

RandomLED
Randomises the colour to a specific LED 
- BYTE LED
LED 0 to NumLEDs - 1 
- VOID Return


RandomLEDs

RandomLEDs
Randomises the colour of all the LEDs 
- VOID Return


SetColour

SetColour
Generates a colour value based on the input colour parameters and asigns it to one of the LEDs. 
- BYTE LED
LED 0 to NumLEDs - 1 
- BYTE Red
Red 0=None, 255=Max 
- BYTE Green
Green 0=None, 255=Max 
- BYTE Blue
Blue 0=None, 255=Max 
- VOID Return


SetColours

SetColours
Generates a colour value based on the input colour parameters and asigns it to all of the LEDs. 
- BYTE Red
Red 0=None, 255=Max 
- BYTE Green
Green 0=None, 255=Max 
- BYTE Blue
Blue 0=None, 255=Max 
- VOID Return


SetLED

SetLED
Directly sets the colour of a single LED. Red = 3-bit, Green = 3-bit, Blue = 2-bit 0bBBGGGRRR 
- BYTE LED
LED 0 to NumLEDs - 1 
- BYTE Colour
 
- VOID Return


SetLEDs

SetLEDs
Sets the colour of all the LEDs. Red = 3-bit, Green = 3-bit, Blue = 2-bit 0bBBGGGRRR 
- BYTE Colour
 
- VOID Return


WaitAudio

WaitAudio
Checks to see if the audio circuit is current outputting a tone. If it is then the macro will wait until the audio is free again. 
- UINT Delay
Optional ms delay after the audio has stopped playing 0=No Delay 
- VOID Return



Property reference

Properties
Pin Connections
LED Data Port
 
LED Clock Pin
 
LED Enable Pin
 
Audio Output Pin
 
Switch Input Pin
 
LED Properties
Number Buffers
Number of octal buffer IC's you will require to drive the LEDs. Note that the microcontroller data port provides the first buffer so the numbr of ICs is actually one less than the value shown. 
Number LEDs
 
Test On Startup
Performs a simple LED test routine on start up. LEDs should all light up white, red, green and blue in second intervals.