Editing RGB LED

Jump to navigation Jump to search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
 
= Description =
 
= 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]].
+
This RGB LED is not smart - you use it like 3 LEDs..
  
[[File:Rgb-foto.JPG|200px]]
+
[[File:RgbIMG 9775.jpg]]
  
 
= How to connect it electrically =
 
= 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 or common VCC.
+
Text
There are different types: some have common cathode (GND/-), other versions with common anode (+/VCC). It is easy to check: connect Pin 1 via resistor to VCC and Pin 2 to GND - if it lights up it is common cathode.
 
You can use any free digital out pins on your board. In the example sketch it is 14, 26, 27 (good for Wifi-Kit ESP32) and you could use 2, 3, 4 for Aruduino Nano Connect RP2024.
 
  
[[File:Rgb-led.PNG|800px]]
+
Image(s)
  
 
= 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
+
# todo
 
+
# code goes here
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>
  
 
= A small Program in MicroPython =
 
= A small Program in MicroPython =
 
<syntaxhighlight lang="python" line='line'>
 
<syntaxhighlight lang="python" line='line'>
from machine import Pin, PWM
+
# todo
from time import sleep
+
# code goes here
 
 
# 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)
 
 
</syntaxhighlight>
 
</syntaxhighlight>
  
[[file:Rgb-setup1.JPG|300px]]
+
text
  
[[file:Rgb-setup2.JPG|300px]]
+
image(s)
  
[[file:Rgb-setup3.JPG|300px]]
+
= Related Tutorial Videos =
 +
change to the right video
  
= Related Tutorial Videos =
+
<youtube>0KGgYsEZcZM</youtube>
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.
 
  
<youtube>https://youtu.be/K2m6ttZ1bJw</youtube>
 
  
 +
= Background =
 +
text
  
[[Category:Actuators]]
+
image(s)
[[Category:Electronic components]]
 

Please note that all contributions to Sketching with Hardware at LMU Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see My wiki:Copyrights for details). Do not submit copyrighted work without permission!

Cancel Editing help (opens in new window)