KY-009 RGB SMD-LED
LED module which contains a red, blue and green LED. These are connected to each other by means of a common cathode.
- Arduino
- Raspberry Pi
- Raspberry Pi Pico
- Micro:Bit
LED module which contains a red, blue and green LED. These are connected to each other by means of a common cathode.
Technical data
Forward voltage [Red] | 1.8 V |
Forward voltage [Green, Blue] | 2.8 V |
Forward current | 20 mA |
Series resistors:
Depending on the input voltage, series resistors are required.
Series resistor (3.3 V) [Red] | 180 Ω |
Series resistor (3,3 V) [Green] | 100 Ω |
Series resistor (3,3 V) [Blue] | 100 Ω |
Series resistor (5 V) [Red] | 180 Ω |
Series resistor (5 V) [Green] | 100 Ω |
Series resistor (5 V) [Blue] | 100 Ω |
Pin assignment
Code example Arduino
Pin assignment Arduino:
Arduino | Sensor |
---|---|
Pin 10 | LED RED |
Pin 11 | LED GREEN |
Pin 12 | LED BLUE |
GND | GND |
Code example ON/OFF
This code example shows how the integrated LEDs can be changed alternately, every 3 seconds, by means of a definable output pin.
int Led_Red = 10;
int Led_Green = 11;
int Led_Blue = 12;
void setup ()
{
// Initialize output pins for the LEDs
pinMode (Led_Red, OUTPUT);
pinMode (Led_Green, OUTPUT);
pinMode (Led_Blue, OUTPUT);
}
void loop () //Main program loop
{
digitalWrite (Led_Red, HIGH); // LED is switched on
digitalWrite (Led_Green, LOW); // LED is switched on
digitalWrite (Led_Blue, LOW); // LED is switched on
delay (3000); // Wait mode for 3 seconds
digitalWrite (Led_Red, LOW); // LED is switched on
digitalWrite (Led_Green, HIGH); // LED is switched on
digitalWrite (Led_Blue, LOW); // LED is switched on
delay (3000); // Waiting mode for another three seconds in which the LEDs are then switched over
digitalWrite (Led_Red, LOW); // LED is switched on
digitalWrite (Led_Green, LOW); // LED is switched on
digitalWrite (Led_Blue, HIGH); // LED is switched on
delay (3000); // Wait mode for another three seconds in which the LEDs are then switched over
}
Example program ON/OFF Download:
Code example PWM
Pulse width modulation [PWM] can be used to regulate the brightness of an LED - in this process, the LED is switched on and off at specific time intervals, with the ratio of the switch-on and switch-off times corresponding to a relative brightness. Due to the inertia of human vision, human eyes interpret such on/off behavior as a change in brightness. More information on this topic can be found in this article by Analog IC Tips.
Several LEDs are integrated in this module - different colors can thus be created by superimposing different brightness levels. This is shown in the following code example.
int Led_Red = 10;
int Led_Green = 11;
int Led_Blue = 12;
int val;
void setup () {
// Initialize output pins for the LEDs
pinMode (Led_Red, OUTPUT);
pinMode (Led_Green, OUTPUT);
pinMode (Led_Blue, OUTPUT);
}
void loop () {
// Within a For loop, different PWM values are passed to the three LEDs.
// This creates a color gradient in which the mixing of different
// brightness levels of the two integrated LEDs, different colors are created
for (val = 255; val> 0; val--)
{
analogWrite (Led_Blue, val);
analogWrite (Led_Green, 255-val);
analogWrite (Led_Red, 128-val);
delay (1);
}
// In the second for-loop the color gradient will be processed backwards
for (val = 0; val <255; val++)
{
analogWrite (Led_Blue, val);
analogWrite (Led_Green, 255-val);
analogWrite (Led_Red, 128-val);
delay (1);
}
}
PWM sample program download:
LED module which contains a red, blue and green LED. These are connected to each other by means of a common cathode.
Technical data
Forward voltage [Red] | 1.8 V |
Forward voltage [Green, Blue] | 2.8 V |
Forward current | 20 mA |
Series resistors:
Depending on the input voltage, series resistors are required.
Series resistor (3.3 V) [Red] | 180 Ω |
Series resistor (3,3 V) [Green] | 100 Ω |
Series resistor (3,3 V) [Blue] | 100 Ω |
Series resistor (5 V) [Red] | 180 Ω |
Series resistor (5 V) [Green] | 100 Ω |
Series resistor (5 V) [Blue] | 100 Ω |
Pin assignment
Code example Raspberry Pi
Pin assignment Raspberry Pi:
Raspberry Pi | Sensor |
---|---|
GPIO 25 [Pin 22] | LED RED |
GPIO 24 [Pin 18] | LED GREEN |
GPIO 23 [Pin 16] | LED BLUE |
GND [Pin 6] | GND |
Code example ON/OFF
This code example shows how the integrated LEDs can be changed alternately, every 3 seconds, by means of a definable output pin.
# Required modules are imported and set up
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
# Here the output pin is declared, to which the LEDs are connected.
LED_Red = 25
LED_Green = 24
LED_Blue = 23
GPIO.setup(LED_Red, GPIO.OUT, initial= GPIO.LOW)
GPIO.setup(LED_Green, GPIO.OUT, initial= GPIO.LOW)
GPIO.setup(LED_Blue, GPIO.OUT, initial= GPIO.LOW)
print ("LED test [press CTRL+C to exit test]")
# main program loop
try:
while True:
print("LED RED 3 seconds on")
GPIO.output(LED_Red,GPIO.HIGH) #LED is turned on
GPIO.output(LED_Green,GPIO.LOW) #LED is switched on
GPIO.output(LED_Blue,GPIO.LOW) #LED is switched on
time.sleep(3) # wait mode for 4 seconds
print("LED GREEN 3 seconds on")
GPIO.output(LED_Red,GPIO.LOW) #LED is switched on
GPIO.output(LED_Green,GPIO.HIGH) #LED is switched on
GPIO.output(LED_Blue,GPIO.LOW) #LED is switched on
time.sleep(3) #wait mode for 3 seconds
print("LED BLUE 3 seconds on")
GPIO.output(LED_Red,GPIO.LOW) #LED is switched on
GPIO.output(LED_Green,GPIO.LOW) #LED is switched on
GPIO.output(LED_Blue,GPIO.HIGH) #LED is switched on
time.sleep(3) #wait mode for 3 seconds
# clean up after the program is finished
except KeyboardInterrupt:
GPIO.cleanup()
Example program ON/OFF download
To start with the command:
sudo python3 KY009-RPi.py
Pulse width modulation [PWM] can be used to regulate the brightness of an LED - in this process, the LED is switched on and off at specific time intervals, with the ratio of the switch-on and switch-off times corresponding to a relative brightness. Due to the inertia of human vision, human eyes interpret such on/off behavior as a change in brightness. More information on this topic can be found in this article by Analog IC Tips.
Several LEDs are integrated in this module - different colors can thus be created by superimposing different brightness levels. This is shown in the following code example.
# Required modules are imported and set up
import random, time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
# Here we declare the output pin to which the LEDs are connected.
LED_Red = 25
LED_Green = 24
LED_blue = 23
# Set pins to output mode
GPIO.setup(LED_Red, GPIO.OUT)
GPIO.setup(LED_Green, GPIO.OUT)
GPIO.setup(LED_Blue, GPIO.OUT)
Freq = 100 #Hz
# The respective colors are initialized.
RED = GPIO.PWM(LED_Red, Freq)
GREEN = GPIO.PWM(LED_Green, Freq)
BLUE = GPIO.PWM(LED_Blue, Freq)
RED.start(0)
GREEN.start(0)
BLUE.start(0)
# This function generates the actual color
# By means of the respective color variable, the color intensity can be changed
# After the color was set, by means of "time.sleep" the time is defined,
# how long the said color is to be indicated
def LED_Color(Red, Green,Blue, pause):
RED.ChangeDutyCycle(Red)
GREEN.ChangeDutyCycle(Green)
BLUE.ChangeDutyCycle(Blue)
time.sleep(pause)
RED.ChangeDutyCycle(0)
GREEN.ChangeDutyCycle(0)
print ("LED test [press CTRL+C to end test]")
# Main program loop:
# This has the task to create a separate variable for each color
# and by means of a for-loop to run through the color intensity of each single color from 0-100
# By the mixtures of the different brightness levels of the respective colors
# thus a color gradient is created
try:
while True:
for x in range(0,2):
for y in range(0,2):
for z in range(0,2):
print (x,y,z)
for i in range(0,101):
LED_Color((x*i),(y*i),(z*i),.02)
# Clean up after the program is finished
except KeyboardInterrupt:
GPIO.cleanup()
Example program PWM download
To start with the command:
sudo python3 KY009-PWM.py
LED module which contains a red, blue and green LED. These are connected to each other by means of a common cathode.
Technical data
Forward voltage [Red] | 1.8 V |
Forward voltage [Green, Blue] | 2.8 V |
Forward current | 20 mA |
Series resistors:
Depending on the input voltage, series resistors are required.
Series resistor (3.3 V) [Red] | 180 Ω |
Series resistor (3,3 V) [Green] | 100 Ω |
Series resistor (3,3 V) [Blue] | 100 Ω |
Series resistor (5 V) [Red] | 180 Ω |
Series resistor (5 V) [Green] | 100 Ω |
Series resistor (5 V) [Blue] | 100 Ω |
Pin assignment
Code example Micro:Bit
Pinout Micro:Bit:
Micro:Bit | Sensor |
---|---|
Pin 1 | LED RED |
Pin 2 | LED GREEN |
Pin 0 | LED BLUE |
GND | GND |
This example turns on the LEDs depending on which button is pressed.
Example program download
LED module which contains a red, blue and green LED. These are connected to each other by means of a common cathode.
Technical data
Forward voltage [Red] | 1.8 V |
Forward voltage [Green, Blue] | 2.8 V |
Forward current | 20 mA |
Series resistors:
Depending on the input voltage, series resistors are required.
Series resistor (3.3 V) [Red] | 180 Ω |
Series resistor (3,3 V) [Green] | 100 Ω |
Series resistor (3,3 V) [Blue] | 100 Ω |
Series resistor (5 V) [Red] | 180 Ω |
Series resistor (5 V) [Green] | 100 Ω |
Series resistor (5 V) [Blue] | 100 Ω |
Pin assignment
Code example Raspberry Pi Pico
Pin assignment Raspberry Pi Pico:
Raspberry Pi Pico | Sensor |
---|---|
GPIO27 | LED RED |
GPIO28 | LED GREEN |
GPIO26 | LED BLUE |
GND | GND |
Code example ON/OFF
This code example shows how the integrated LEDs can be changed alternately, every 3 seconds, by means of a definable output pin.
# Load libraries
from machine import Pin, PWM
from time import sleep
# Initialization of GPIO26, GPIO27 and GPIO28 as output
Green = Pin(28, Pin.OUT)
Red = Pin(27, Pin.OUT)
Blue = Pin(26, Pin.OUT)
# Function: The individual available colors of the LED are switched on and off one after the other
def solo():
Green.value(1)
Red.value(0)
Blue.value(0)
sleep(3)
Green.value(0)
Red.value(1)
Blue.value(0)
sleep(3)
Green.value(0)
Red.value(0)
Blue.value(1)
sleep(3)
Green.value(0)
Red.value(0)
Blue.value(0)
# Function: The individual available colors of the LED are switched simultaneously one after the other to create mixed colors.
def mix():
Green.value(1)
Red.value(1)
Blue.value(0)
sleep(3)
Green.value(1)
Red.value(0)
Blue.value(1)
sleep(3)
Green.value(0)
Red.value(1)
Blue.value(1)
sleep(3)
Green.value(0)
Red.value(0)
Blue.value(0)
while True:
solo()
sleep(3)
mix()
Example program ON/OFF Download:
Code example PWM
By means of pulse width modulation [PWM], the brightness of an LED can be regulated - in this process, the LED is switched on and off at specific time intervals, with the ratio of the switch-on and switch-off time corresponding to a relative brightness. Due to the inertia of human vision, human eyes interpret such on/off behavior as a change in brightness. More information on this topic can be found in this article from mikrokontroller.net.
Several LEDs are integrated in this module - different colors can thus be created by superimposing different brightness levels. This is shown in the following code example.
# Load libraries
import machine
import math
# Initialization of GPIO26, GPIO27 and GPIO28 as PWM Pin
ledRed = machine.PWM(machine.Pin(27))
ledRed.freq(1000)
ledBlue = machine.PWM(machine.Pin(26))
ledBlue.freq(1000)
ledGreen = machine.PWM(machine.Pin(28))
ledGreen.freq(1000)
# Definition of a 3 digit list
RBG = [0,0,0]
# Function: Color space calculation for red, green and blue | Green is 120° offset from red | Blue is 240° offset from red
def sinColour(number):
a = (math.sin(math.radians(number))+1)*32768
b = (math.sin(math.radians(number+120))+1)*32768
c = (math.sin(math.radians(number+240))+1)*32768
RBG = (int(a),int(b),int(c))
return RBG
# Endless loop where the color value for all 3 colors is shifted again and again by 0.01
a = 0
while True:
RBG = sinColour(a)
a += 0.01
if a == 360:
a = 0
ledRed.duty_u16(RBG[0])
ledBlue.duty_u16(RBG[1])
ledGreen.duty_u16(RBG[2])