Component: LED (Generic, RGB) (LED)
Author | Matrix Ltd |
Version | 1.3 |
Category | LED |
Contents
LED (Generic, RGB) component
An LED with red, green and blue elements that can be mixed together to produce almost any colour at any brightness.
Detailed description
No detailed description exists yet for this component
Examples
Tricolour LEDs generally have four pins and come in both common anode and common cathode configurations and must be wired to suit. The RGBLED component has 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.
Six pin tricolour LEDs can simply be treated as three individual standards LEDs.
The series resistor acts to protect each individual 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. Usually the three colour LEDs have different characteristics from each other so a different protection resistor should be provided for each LED to balance the LEDs output.
This LED Calculator tool is a good resource for calculating the correct LED series protection resistor.
This example for the RGB LED uses three analogue sliders to set the output colour of the LED.
The LED Colour is output to the LED using the Timer interrupt which calls the RGB LED Tick function.
The RGB LED properties include a setting for "Colour Bit Size" which sets the period for the LED colour PWM. The "Rollover Value" property shows the number of interrupts required for each PWM period so the timer interrupt should be running fast enough to allow the LED to output several periods per second. Persistence of vision can normally no longer detect any flickering light above approx 24Hz.
For a constant none flickering LED you can work out the minimum interrupt frequency like this.
30Hz * Rollover Value = Minimum interrupt frequency
30Hz * 256 = 7680Hz
60Hz * 64 = 3840Hz
Each LED colour channel can be set from 0 (minimum) to the rollover value - 1 (maximum). Therefore with a colour channel bit size of 8 there are theoretically 16777216 colours available 2^(8*3). With a colour bit size of 4 the available number of colours that can be generated drops to 4096, 2^(4*3).
Downloadable macro reference
![]() |
Disable |
Disables the RGB LED. It will no longer respond to color changes. | |
![]() |
Return |
![]() |
Enable |
Enables the RGB LED. This must be done before the LED can be lit or the color changed. | |
![]() |
Return |
![]() |
Initialise |
Sets up the I2C ready for communications to begin | |
![]() |
Return |
![]() |
WakeUp |
Wakes the module from Sleep mode | |
![]() |
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. | |
![]() |
Return |
![]() |
Initialise |
Sets up the data memory and draws the simulated LED cube on the panel. | |
![]() |
Return |
![]() |
Initialise |
Starts up the formula flowcode PWM for motor control and performs the wait for button press | |
![]() |
Return |
![]() |
Initialise |
The Init macro must be called once to initialise the Graphical LCD display before any other Graphical LCD component macros are called. | |
![]() |
Return |
![]() |
Initialise |
The Init macro must be called once to initialise the Graphical LCD display before any other Graphical LCD component macros are called. | |
![]() |
Return |
![]() |
Initialise |
The Init macro must be called once to initialise the Graphical LCD display before any other Graphical LCD component macros are called. | |
![]() |
Return |
![]() |
Initialise |
The Init macro must be called once to initialise the Graphical LCD display before any other Graphical LCD component macros are called. | |
![]() |
Return |
![]() |
ARB4 |
Loads the binary-data to an existing arbitrary waveform memory location ARB4. | |
![]() |
Waveform |
![]() |
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). | |
![]() |
Return |
![]() |
MSTLOCK |
Sends signal to SLAVE generator to get synchronised | |
![]() |
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). | |
![]() |
Return |
![]() |
ARB3 |
Loads the binary-data to an existing arbitrary waveform memory location ARB3. | |
![]() |
Waveform |
![]() |
Return |
![]() |
CALADJ |
Adjust the selected calibration value by <nrf> (Lower limit: -100 - Upper limit: 100). | |
[[File:]] - | Calibrate |
Adjust the selected calibration value (-100 - 100). | |
![]() |
Return |
![]() |
STBRet |
Returns the value of the Status Byte Register in <nr1> numeric format. | |
![]() |
Return |
![]() |
ARB2 |
Loads the binary-data to an existing arbitrary waveform memory location ARB2. | |
![]() |
Waveform |
![]() |
Return |
![]() |
EERRet |
Query and clear execution error number register. | |
![]() |
Return |
![]() |
MODFMSRC |
Sets FM waveform source to; 0 INT, 1 = EXT. | |
[[File:]] - | Source |
Sets FM waveform source (0 = INT, 1 = EXT). | |
![]() |
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). | |
![]() |
Return |
![]() |
ESE |
Sets the Standard Event Status Enable Register to the value of <nrf>. | |
![]() |
Value |
Value of register 0-255 | |
![]() |
Return |
![]() |
ARB1 |
Loads the binary-data to an existing arbitrary waveform memory location ARB1. | |
![]() |
Waveform |
16 Bit binary number for arbitrary waveform. | |
![]() |
Return |
![]() |
ARB4DEFRet |
Returns user specified waveform name, waveform pint interpolation state and waveform length of ARB4. | |
![]() |
Return |
![]() |
CLS |
Clears status byte register of the interface. | |
![]() |
Return |
![]() |
MSTRELOCK |
Resynchronises the two generators in MASTER-SLAVE mode. | |
![]() |
Return |
![]() |
NOISLVL |
Sets the output noise level to <nr1> %. (Lower limit: 0% - Upper limit: 50%) | |
![]() |
Percent |
Sets the output noise level in percent. (0 - 50) | |
![]() |
Return |
![]() |
LOCKMODE |
Sets the synchronising mode to; 0 = MASTER, 1 = SLAVE, 2 = INDEP. | |
![]() |
Mode |
Sets the synchronising mode (0 = MASTER, 1 = SLAVE, 2 = INDEP). | |
![]() |
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). | |
![]() |
Return |
![]() |
MODPWMSRC |
Sets PWM waveform source to; 0 = INT, 1 = EXT. | |
[[File:]] - | Source |
Sets PWM waveform source (0 = INT, 1 = EXT). | |
![]() |
Return |
![]() |
MOD |
Sets modulation to; 0 = OFF, 1 = AM, 2 = FM, 3 = PM, 4 = FSK, 5 = PWM. | |
![]() |
Modulation |
Sets modulation (0 = OFF, 1 = AM, 2 = FM, 3 = PM, 4 = FSK, 5 = PWM). | |
![]() |
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 |
![]() |
PULSRANGE |
Sets PWM waveform source to <1>, <2> or <3>; 1 = 1, 2 = 2, 3 = 3. | |
![]() |
Range |
Sets the pulse rise and fall range. (1, 2 or 3) | |
![]() |
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). | |
![]() |
Return |
![]() |
ARB3Ret |
Returns the binary-data from an existing abbitrary wavefrom memory location. | |
![]() |
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) | |
![]() |
Return |
![]() |
SWPTRGPER |
Sets the sweep trigger period to <nrf> seconds | |
[[File:]] - | Seconds |
Set the sweep trigger period in seconds. | |
![]() |
Return |
![]() |
PULSDLY |
Sets the waveform delay to <nrf> sec | |
[[File:]] - | Sec |
![]() |
Return |
![]() |
Initialise |
Opens the COM port ready for communications. | |
![]() |
Return |