Raspberry Pi Pico RGB LED steuern
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
- Raspberry Pi Pico oder Raspberry Pi Pico w
- AZDelivery 5 x KY-016 FZ0455 3-Farben RGB LED Modul 3 Color
- Jumper Kabel
Anschluss der RGB am GPIO
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.
- Download des Scriptes hier möglich: https://github.com/alaub81/rpi_pico_scripts/raw/main/rgbLED_sample.py
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)
- Download des Scriptes hier möglich: https://github.com/alaub81/rpi_pico_scripts/raw/main/rgbLED_hexcode_sample.py
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: