Raspberry Pi Pico: LED-Helligkeit mit PWM einstellen
Im Prinzip kennt ein GPIO nur zwei Zustände: „High“ und „Low“. Also „An“ und „Aus“ oder „1“ und „0“. Es handelt sich dabei um die binäre Logik (zwei Zustände). Werte dazwischen gibt es nicht. Demnach kann man eine LED an einem GPIO-Ausgang auch nur ein- und ausschalten. Die Helligkeit der LED wird mit dem Vorwiderstand festgelegt.
Trotzdem gibt es einen Trick mit dem man die Helligkeit einer LED steuern kann. Und zwar macht man es sich zu nutze, dass der Umschaltvorgang von Leuchten und nicht Leuchten einer LED eine gewisse Trägheit aufweist und für das menschliche Auge deshalb mit zeitlicher Verzögerung erfolgt. Wenn die LED nun sehr schnell ein- und ausgeschaltet wird, können wir den Schaltvorgang nicht direkt wahrnehmen. Statt einem schnellen Blinken sehen wir die durchschnittliche Leuchtdauer im Verhältnis zur Dauer des ausgeschalteten Zustands in Form einer unterschiedlichen Helligkeit.
Mit einem PWM-Signal kann man über die Breite des Pulses (Dauer des High-Zustands) die Helligkeit einer Leuchtdiode steuern.
Im folgenden Aufbau wird der Mikrocontroller Raspberry Pi Pico verwendet. Zum Einstieg und erste Versuche empfehlen sich Erste Schritte mit dem Raspberry Pi Pico und Programmieren mit MicroPython.
Aufbau und Bauteile

Den Aufbau haben wir für die Lichtsteuerung stark vereinfacht, in dem wir einfach die Onboard-LED auf dem Raspberry Pi Pico verwenden. Die reicht zum Testen vollkommen aus. Natürlich könntest Du eine normale LED, zum Beispiel mit der Farbe Weiß oder Rot ebenso verwenden. Dazu müsstest Du Dich um die entsprechende Beschaltung kümmern.
Programmcode
Im Programmcode wird der GPIO für die Leuchtdiode als PWM-Ausgang initialisiert und eine Frequenz von 1.000 Hertz (Hz) eingestellt. Anschließend wird innerhalb der Schleife das Duty-Cycle, das Verhältnis zwischen Impuls und Pause des Signals erhöht. Die Leuchtdiode leuchtet also immer heller, geht aus und wird wieder heller.
# Bibliotheken laden
from machine import Pin, PWM
from time import sleep
# Initialisierung Onboard-LED/PWM-Ausgang
led = PWM(Pin(25, Pin.OUT))
# PWM-Einstellung: Frequenz in Hertz (Hz)
led.freq(1000)
i = 0
# Wiederholung (Endlos-Schleife)
while True:
led.duty_u16(i)
sleep(0.1)
i = i + 3000
if i > 65535:
i = 0
Experimente
Der Programmcode lädt zum Experimentieren ein.
- Die Zeile „sleep(0.1)“ gibt an, wie lange in Sekunden zwischen den Veränderungsschritten gewartet werden soll. Vergrößere und verkleinere den Wert zum Beispiel auf „0.5“ oder „0.05“.
- Softwareseitig kann das PWM-Signal einen Duty Cycle zwischen 0 und 65.535 annehmen. Bei 0 ist die LED aus. Bei 65.535 leuchtet die LED am hellsten. Allerdings leuchtet die LED schon wesentlich vor 65.535 sehr hell. Verkleinere den Wert von „65535“ so weit, wie es wirklich nötig ist.
- Im Programmcode wird von 0 (LED aus) nach 65.535 (LED leuchtet voll) in 3.000er Schritten die Helligkeit gesteigert. Vergrößere den Wert von „3000“ und verkleinere ihn, um den Effekt auf die Helligkeitsänderung herauszufinden.
Darf es etwas mehr sein?
Für was kann man die Helligkeitssteuerung von LEDs einsetzen? Beispielsweise, um Licht-Effekte zu programmieren.
- Raspberry Pi Pico: LED-Helligkeit mit einem Potentiometer einstellen
- Raspberry Pi Pico: Lichtsteuerung für Lichteffekte mit LEDs programmieren
Nur eine LED steuern ist doch langweilig. Machen wir es anspruchsvoller. Wie wäre es mit einer Ampelsteuerung oder ein Lauflicht?
Highlights: Elektronik mit dem Raspberry Pi Pico
- Raspberry Pi Pico: Onboard-LED einschalten und ausschalten
- Raspberry Pi Pico: Taster-Zustand auswerten und mit einer LED anzeigen
- Raspberry Pi Pico: Elektronischer Würfel
- Raspberry Pi Pico: Temperatur-Messung und Temperatur anzeigen
Weitere verwandte Themen:
- Raspberry Pi Pico: Summer-Lautstärke einstellen
- Raspberry Pi Pico: Summer-Lautstärke mit einem Potentiometer einstellen
- Raspberry Pi Pico: Grundlagen zur PWM
Frag Elektronik-Kompendium.de
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: 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.
Besuchen Sie unser fast monatlich stattfindendes Online-Meeting PicoTalk und lernen Sie uns kennen. Die Teilnahme ist kostenfrei.






