Raspberry Pi Pico: WS2812-Lauflicht-Geschwindigkeit mit Rotary Encoder einstellen (KY-040)

RGB-LED-Module, -Platinen, -Streifen und -Bänder vom Typ WS2812 sind sehr beliebt, um Lichteffekte in verschiedenen Farben zu erzeugen. Dazu muss das RGB-LED-Modul mit einer Stromversorgung und einem Controller verbunden werden. Der Controller kümmert sich um die Lichteffekte.

In diesem Aufbau verwenden wir eine WS2812-Platine mit 8 RGB-LEDs als Lauflicht. Und einen Rotary Encoder vom Typ KY-040 verwenden wir, um die Geschwindigkeit des Lauflichts einzustellen.

Wenn das Dein erster Versuch mit einem Rotary Encoder vom Typ KY-040 ist, dann solltest Du Dich zuerst mit diesem Bauteil und seinen Besonderheiten vertraut machen. Außerdem empfiehlt es sich zuerst mit der Ansteuerung bzw. der Software-seitigen Auswertung des Rotary Encoders zu experimentieren und herauszufinden, was er leisten kann.

Aufbau und Bauteile

Raspberry Pi Pico: Drehschalter / Rotary Encoder ansteuern (KY-040)

Raspberry Pi Pico WS2812
Pin 40 VCC +5V VCC
Pin 38 GND GND
Pin 34 GPIO 28 DI / DIN
Pin 33 GND GND

Hinweis zur Stromversorgung: In der Regel verwendet man zur Stromversorgung der WS2812-RGB-LEDs ein eigenes Netzteil, etwa mit 5 Volt. In diesem Aufbau speisen wir den LED-Streifen mit den 5 Volt vom Pin 40 (VBUS). Wir greifen hier die 5 Volt direkt vom USB ab. Bei mehr oder längeren Streifen ist aber zwingend ein eigenes Netzteil erforderlich.

Raspberry Pi Pico KY-040
Pin 23 GND GND
Pin 36 VCC +3,3V +
Pin 26 GPIO 20 SW
Pin 25 GPIO 19 CLK
Pin 24 GPIO 18 DT

Programmcode

Zur Software-seitigen Ansteuerung bzw. Auswertung des Rotary Encoders ist eine externe Bibliothek erforderlich.

Die Unterstützung von NeoPixels ist in MicroPython bereits enthalten. Damit ist die Steuerung der WS2812-RGB-LEDs möglich.

Wenn das Programm gestartet wurde, dann läuft das Lauflicht los. Durch Drehen des Rotary Encoders kann die Geschwindigkeit eingestellt werden.

# Bibliotheken laden
from machine import Pin
from neopixel import NeoPixel
from rotary import Rotary
from utime import sleep_ms

# GPIO-Pin für WS2812
pin_np = 28

# Anzahl der LEDs
leds = 8

# Helligkeit: 0 bis 255
brightness = 10

# Geschwindigkeit (Millisekunden)
speed = 100

# Initialisierung WS2812/NeoPixel
np = NeoPixel(Pin(pin_np, Pin.OUT), leds)

# GPIO-Pins für Encoder
pin_dt = 18
pin_clk = 19
pin_sw = 20

# Initialiserung Rotary Encoder
rotary = Rotary(pin_dt, pin_clk, pin_sw)
for i in range (leds): np[i] = (0, 0, 0)

# Funktion
def rotary_changed(change):
    global speed
    if change == Rotary.ROT_CW:
        speed = speed - 5
    elif change == Rotary.ROT_CCW:
        speed = speed + 5
    # Korrektur, wenn Ende erreicht
    if speed < 5: speed = 5
    # Korrektur, wenn Anfang erreicht
    if speed > 500: speed = 500
    print(speed)

# Wenn der Encoder bedient wird
rotary.add_handler(rotary_changed)

# Wiederholung (Endlos-Schleife)
while True:
    for i in range (leds):
        # Nächste LED einschalten
        np[i] = (brightness, brightness, brightness)
        np.write()
        sleep_ms(speed)
        # LED zurücksetzen
        np[i] = (0, 0, 0)

Darf es ein bisschen mehr sein?

Ein WS2812-Modul kannst Du auch als Balken-Anzeige verwenden. Zum Beispiel für eine Funktionsauswahl, die dann durch Drücken auf den Drehschalter bestätigt oder ausgelöst wird.

Weitere verwandte Themen:

Teilen:

Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython

Elektronik-Set Pico Edition

Das "Elektronik-Set Pico Edition" ist ein Bauteile-Sortiment mit Anleitung zum Experimentieren und Programmieren mit MicroPython.

  • LED: Einschalten, ausschalten, blinken und Helligkeit steuern
  • Taster: Entprellen und Zustände anzeigen
  • LED mit Taster einschalten und ausschalten
  • Ampel- und Lauflicht-Steuerung
  • Elektronischer Würfel
  • Eigene Steuerungen programmieren

Online-Workshop Mehr Informationen Elektronik-Set jetzt bestellen

Programmieren mit dem Raspberry Pi Pico
Online-Workshop

Programmieren mit dem Raspberry Pi Pico

Online-Workshop mit einer Einführung ins Physical Computing mit Leuchtdioden, Taster und Temperatursensor.

  • Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython ohne Vorkenntnisse
  • Optimaler Einstieg, um eigene Ideen zu verwirklichen und Steuerungen zu programmieren
  • Inklusive Elektronik-Set mit einem Raspberry Pi Pico, Zubehör und elektronischen Bauteilen

Für Ihre Fragen zu unseren Online-Workshops mit dem Raspberry Pi Pico besuchen Sie unseren PicoTalk (Online-Meeting). (Headset empfohlen)

Zum PicoTalk Mehr Informationen Am Online-Workshop teilnehmen

Elektronik-Set Pico Edition
Elektronik-Set Pico Edition

Hardware-nahes Programmieren mit dem Raspberry Pi Pico

Das "Elektronik-Set Pico Edition" ist ein Bauteile-Sortiment mit Anleitung zum Experimentieren und Programmieren mit MicroPython.

  • LED: Einschalten, ausschalten, blinken und Helligkeit steuern
  • Taster: Entprellen und Zustände anzeigen
  • LED mit Taster einschalten und ausschalten
  • Ampel- und Lauflicht-Steuerung
  • Elektronischer Würfel
  • Eigene Steuerungen programmieren

Online-Workshop Mehr Informationen Elektronik-Set jetzt bestellen