Raspberry Pi Pico RGB LED steuern

Aus Laub-Home Wiki

Mit dem Raspberry Pi Pico (w) ist es möglich eine RGB LED anzusteuern und in verschiedenen Farben leuchten zu lassen. Dafür muss man nur eine RGB LED, am besten fertig verbaut auf einem Entwicklerboard, an den GPIO des Pico anschließen und mittels MicroPython Script ansteuern. Falls man hier kein fertiges Entwicklerboard kaufen möchte, kann man auch einfach eine RGB LED mit den passenden Widerständen kaufen und diese verkabeln.

Vorraussetzungen

Ich nutze bei mir die folgenden Hardware Komponenten

Anschluss der RGB am GPIO

Raspberry Pi Pico Pinbelegung
Raspberry Pi Pico W Pinbelegung

Wir schließen das Board der RGB LED wie folgt an an dem Pico:

Raspberry Pi Pico RGB LED
Pin 15 GP11 R
Pin 16 GP12 G
Pin 17 GP13 B
Pin 18 GND GND

Ansteuern der RGB LED

Die LED steuern wir dann mittels MicroPython an. Hierzu kann man jede einzelne Farbe der LED (Rot / Grün / Blau) einzeln an und aus schalten. In Kombination können so auch verschiedene andere Farben entstehen. Zum Beispiel "weiß" in dem man alle drei Farben auf einmal anschaltet. Dieses einfache Beispiel könnt ihr mit dem nachfolgenden Script machen.

rgbLED_sample.py

# -*- coding: utf-8 -*-
"""RGB LED
Small script to use a rgb led connected to the pico
"""

from time import sleep
from machine import Pin

# Set the Variables
# set red,green and blue pins
redPin = 11
greenPin = 12
bluePin = 13

# define the the LED Pins
redled = Pin(redPin, Pin.OUT, value=0)
greenled = Pin(greenPin, Pin.OUT, value=0)
blueled = Pin(bluePin, Pin.OUT, value=0)

# turn on the led colors
redled.on()
sleep(3)
redled.off()

greenled.on()
sleep(3)
greenled.off()

blueled.on()
sleep(3)
blueled.off()

# makes white
blueled.on()
redled.on()
greenled.on()
sleep(3)
blueled.off()
redled.off()
greenled.off()

Farbwahl mittels RGB Hexcode

Möchtet ihr mittels hexcode auf die gesamte Farbpalette zu greifen, könnt ihr das nachfolgende Script zur Steuerung verwenden. Ihr könnt der Variable color beliebige hexcode RGB Farben übergeben und testen.

Hier ein paar Beispiele:

  • FF0000 (Red)
  • FFD700 (Gold)
  • 00FF00 (Lime)
  • 00FF33 (SpringGreen)
  • 00FFFF (Aqua)
  • 0000FF (Blue)
  • 191970 (MidnightBlue)
  • FF00FF (Magenta)
  • FFFFFF (White)


rgbLED_hexcode_sample.py

# -*- coding: utf-8 -*-
"""Controlling RGB LED with hex code
Small script to use a rgb led connected to the pico.
You can use hexcodes to show different colors
"""

from machine import Pin, PWM
from time import sleep

# Color in RGB-Hexcode (6 characters)
# https://www.rgbtohex.net/rgb/
color = '191970'
# set red,green and blue pins
redPin = 11
greenPin = 12
bluePin = 13

# do the stuff
print('color hexcode:', color)

if (len(color) == 6):
    color_red = int(color[0].strip() + color[1].strip(), 16)
    print('R:', color_red)
    color_green = int(color[2].strip() + color[3].strip(), 16)
    print('G:', color_green)
    color_blue = int(color[4].strip() + color[5].strip(), 16)
    print('B:', color_blue)
else:
    print('wrong colorcode!')
    exit

red = PWM(Pin(redPin))
red.freq(1000)
red.duty_u16(color_red * 256)

green = PWM(Pin(greenPin))
green.freq(1000)
green.duty_u16(color_green * 256)

blue = PWM(Pin(bluePin))
blue.freq(1000)
blue.duty_u16(color_blue * 256)

GitHub Repository

Alle Skripte die zum Raspberry Pi Pico gehören findet ihr in diesem Repository: