RGB LED: Difference between revisions
Line 8: | Line 8: | ||
There are different types - the one we use has a common ground, but there are also versions with common +. | There are different types - the one we use has a common ground, but there are also versions with common +. | ||
[[File: | [[File:Rgb-led.PNG|600px]] | ||
= How to control it in MicroPython = | = How to control it in MicroPython = |
Revision as of 10:34, 2 June 2024
Description
A regular RGB LED is basically 3 LEDs (one red, one green, one blue) in parallel. This is not a smart LED, for smart LEDs see LED Ring NeoPixel.
How to connect it electrically
The RGB LED is connected like 3 paralell LEDs. It is important that you need one resistor for each color! The resistor goes before the LED and not onto the common ground. There are different types - the one we use has a common ground, but there are also versions with common +.
How to control it in MicroPython
Switching indiviual color on and off
from machine import Pin
blue = Pin(26, Pin.OUT)
green = Pin(27, Pin.OUT)
red = Pin(14, Pin.OUT)
blue.on()
green.off()
red.off()
Controlling intensity
from machine import Pin, PWM
blue = PWM(Pin(26))
green = PWM(Pin(27))
red = PWM(Pin(14))
# set PWM frequency to 1000Hz
blue.freq(1000)
green.freq(1000)
red.freq(1000)
# have blue on at about 50% intesity
blue.duty(512)
green.duty(0)
red.duty(0)
# have red and green at full intesity (mixed color)
blue.duty(0)
green.duty(1023)
red.duty(1023)
A small Program in MicroPython
from machine import Pin, PWM
from time import sleep
# connect it to Pin 26, 27, and 14
blue = PWM(Pin(26))
green = PWM(Pin(27))
red = PWM(Pin(14))
# base frequency for PWM is 1000Hz
blue.freq(1000)
green.freq(1000)
red.freq(1000)
# this is a function to allows to give an "RGB"-Color to the LED
# duty take an argument from 0 to 2023... by multiplying the 0..255 by 4 we get 0 to 2020 - which seems close enough
def rgb(r=255,g=255,b=255):
blue.duty(b*4) # set duty cycle
green.duty(g*4) # set duty cycle
red.duty(r*4) # set duty cycle
# show some cases....
while True:
rgb(255,255,255) # white
sleep(1)
rgb(0,0,0) # off = black
sleep(1)
rgb(255,0,0) # red
sleep(1)
rgb(0,255,0) # gree
sleep(1)
rgb(0,0,255) # blue
sleep(1)
Related Tutorial Videos
In this part of the tutorial, we show how to connect an RGB-LED and programming it with Micropython. We first look at what an RGB LED is by building one with 3 separate LEDs. We then look at switching it on and off and how to set the color using the duty cycle in the PWM output.
Background
text
image(s)