Raspberry Pi Pico: Blink-Geschwindigkeit einer LED mit einem Rotary Encoder einstellen (KY-040)

Ein Rotary Encoder bzw. Drehschalter dient zum Einstellen von Parametern und Werten. Hier wollen wir die Blink-Geschwindigkeit einer LED einstellen.

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 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.

Nach dem Start des Programmcodes blinkt die LED auf dem Raspberry Pi Pico. Durch Drehen des Rotary Encoders kann das Blinken schneller oder langsamer eingestellt werden.

# Bibliotheken laden
from machine import Pin, Timer
from rotary import Rotary

# Start-Blink-Geschwindigkeit
value = 100

# Initialisierung von GPIO25 als Ausgang
led = Pin(25, Pin.OUT)

# Timer initialisieren
blink = Timer(mode=Timer.PERIODIC, period=value, callback=lambda t: led.value(not led.value()))

# GPIOs zum Rotary Encoder
pin_dt = 18
pin_clk = 19
pin_sw = 20

# Initialiserung Rotary Encoder
rotary = Rotary(pin_dt, pin_clk, pin_sw)

# Funktion
def rotary_changed(change):
    global value
    if change == Rotary.ROT_CW:
        value = value - 10
    elif change == Rotary.ROT_CCW:
        value = value + 10
    # Korrektur
    if value < 10: value = 10
    if value > 1000: value = 1000
    print(value)
    # Timer ändern
    blink.deinit()
    blink.init(mode=Timer.PERIODIC, period=value, callback=lambda t: led.value(not led.value()))

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

Darf es ein bisschen mehr sein?

So eine LED ist natürlich viel zu langweilig. Vielleicht könnte Dich eine ganze Reihe von RGB-LEDs begeistern. Das Experimentieren mit einem WS2812-LED-Moduls macht richtig Laune.

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