Raspberry Pi Pico: Helligkeit einer LED mit einem Rotary Encoder einstellen (KY-040)
Die Helligkeit einer LED lässt sich über das Puls-Pause-Verhältnis eines PWM-Signals einstellen. Interessant wird es dann, wenn man das Puls-Pause-Verhältnis über einen drehbaren Regler verändern und somit die Helligkeit manuell einstellen kann. Das wäre mit einem Potentiometer lösbar. Allerdings ist ein Lösung mit einem Rotary Encoder bzw. Drehschalter viel interessanter.
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.
- Mehr Informationen zum KY-040 - Drehschalter (Rotary Encoder)
- Drehschalter / Rotary Encoder ansteuern (KY-040)
Aufbau und Bauteile
Raspberry Pi Pico | KY-040 | |
---|---|---|
Pin 23 | GND | GND |
Pin 36 | VCC +3,3V | + |
Pin 22 | GPIO 17 | SW |
Pin 25 | GPIO 19 | CLK |
Pin 24 | GPIO 18 | DT |
Externe Bibliothek für den Drehschalter (Rotary Encoder)
Zur Software-seitigen Ansteuerung bzw. Auswertung des Drehschalter bzw. Rotary Encoders ist eine externe Bibliothek erforderlich, weil keine direkte Unterstützung in MicroPython vorgesehen ist. Die Bibliothek macht die Auswertung des Drehschalters im Programmcode spielend einfach. Dazu muss die Bibliothek in Form einer Datei auf den Raspberry Pi Pico gespeichert werden, damit die Einbindung im folgenden Programmcode funktioniert.
Programmcode
Nach dem Start des Programmcodes leuchtet die LED in etwa mit halber Helligkeit. Durch Drehen des Rotary Encoders kann die LED heller oder dunkler eingestellt werden.
# Bibliotheken laden from machine import Pin, PWM from rotary import Rotary # Einstellungen steps = 10 step_max = 60000 step = int(step_max / steps) # GPIO der LED pin_led = 25 # GPIOs zum Rotary Encoder pin_dt = 18 pin_clk = 19 pin_sw = 17 # Initialiserung Rotary Encoder rotary = Rotary(pin_dt, pin_clk, pin_sw) value = int(step_max / 6) # Initialisierung PWM und LED led = PWM(Pin(pin_led)) led.freq(1000) led.duty_u16(value) # Funktion def rotary_changed(change): global value global step global step_max if change == Rotary.ROT_CW: value = value + step print('Rechts (', value, ')') elif change == Rotary.ROT_CCW: value = value - step print('Links (', value, ')') # Korrektur, wenn Ende erreicht if value < 0: value = 0 # Korrektur, wenn Anfang erreicht if value >= step_max: value = step_max # PWM-Signal ändern led.duty_u16(value) # Wenn der Encoder bedient wird rotary.add_handler(rotary_changed)
Darf es ein bisschen mehr sein?
Was kannst Du noch einstellen? Die Blink-Geschwindigkeit einer LED zum Beispiel. Das wollen wir doch gleich mal ausprobieren.
Weitere verwandte Themen:
- Raspberry Pi Pico: LED-Helligkeit steuern
- Raspberry Pi Pico: Helligkeit einer LED mit einem 2-Achsen-Joystick einstellen (KY-023)
- Raspberry Pi Pico: WS2812 als Balkenanzeige mit Rotary Encoder manuell steuern (KY-040)
- Raspberry Pi Pico: WS2812-Lauflicht-Geschwindigkeit mit Rotary Encoder einstellen (KY-040)
- Raspberry Pi Pico: Funktionsauswahl mit WS2812-RGB-LEDs und Rotary Encoder programmieren (KY-040)
- Raspberry Pi Pico: Servo-Motor SG90 mit Drehschalter KY-040 steuern
Teilen:
Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython
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
Hardware-nahes Programmieren mit dem Raspberry Pi Pico
Gemeinsam mit anderen und unter Anleitung experimentieren? Wir bieten unterschiedliche Online-Workshops zum Raspberry Pi Pico und MicroPython an. Einführung in die Programmierung, Sensoren programmieren und kalibrieren, sowie Internet of Things und Smart Home über WLAN und MQTT.
Für Ihre Fragen zu unseren Online-Workshops mit dem Raspberry Pi Pico besuchen Sie unseren PicoTalk (Online-Meeting). (Headset empfohlen)
Elektronik-Set Pico Edition
Raspberry Pi Pico: Hardware-nahes Programmieren mit MicroPython
Leichter Einstieg mit All-in-one-Set zum sofort Loslegen, um eigene Steuerungen programmieren.
Elektronik-Set Pico WLAN Edition
Raspberry Pi Pico W: IoT und Smart Home mit WLAN und MQTT
Betreibe Deinen Raspberry Pi Pico W als drahtloser Sensor in Deinem WLAN, versende E-Mails mit Daten und kommuniziere per MQTT im Internet of Things oder Smart Home.
Elektronik-Set Sensor Edition
Erweiterung zu den Elektronik-Sets Pico Edition und Pico WLAN Edition
Elektronik-Set mit den beliebtesten Sensoren zum Messen von Temperatur, Helligkeit, Bewegung, Lautstärke und Entfernung.
Elektronik-Set Eingabe Ausgabe Edition
Erweiterung zu den Elektronik-Sets Pico Edition und Pico WLAN Edition
Damit kannst Du MP3-Dateien abspielen, eine Stoppuhr bauen, einen Servo-Motor mit Drehschalter oder Joystick steuern, Lichteffekte mit einem WS2812-LED-Lichtstreifen erzeugen, Schalten mit einem Relais und Signalisieren mit einem Vibrationsmotor.