RGB LED: Difference between revisions
Jump to navigation
Jump to search
Line 12: | Line 12: | ||
= How to control it in MicroPython = | = How to control it in MicroPython = | ||
Switching indiviual color on and off | |||
<syntaxhighlight lang="python" line='line'> | <syntaxhighlight lang="python" line='line'> | ||
# | 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() | |||
</syntaxhighlight> | |||
Controlling intensity | |||
<syntaxhighlight lang="python" line='line'> | |||
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) | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Revision as of 22:54, 19 August 2020
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.
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)