LED-Helligkeit mit PWM steuern
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. Werte dazwischen gibt es nicht. Demnach kann man eine LED an einem GPIO-Ausgang auch nur ein- und ausschalten. Die Helligkeit wird mit dem Vorwiderstand festgelegt.
Trotzdem gibt es einen Trick mit dem Du die Helligkeit einer LED doch steuern kannst. Und zwar macht man es sich zu nutze, dass das Leuchten einer LED eine gewisse Trägheit aufweist und für das menschliche Auge deshalb mit zeitlicher Verzögerung erfolgt. Wenn die LED sehr schnell ein- und ausgeschaltet wird, können wir den Schaltvorgang nicht direkt wahrnehmen. Desweiteren weist eine LED auch eine gewisse Trägheit auf, weshalb sie nicht schnell genug vom leuchtenden in den nichtleuchtenden Zustand kommt. Sie glimmt praktisch etwas nach. Statt eine schnellen Blinken sehen wir die durchschnittliche Leuchtdauer im Verhältnis zur Dauer des ausgeschalteten Zustands in Form einer unterschiedlichen Helligkeit.
Die Frage ist, wie realisiert man die Software-Steuerung? Das ist vergleichsweise einfach. Ein GPIO kann nicht einfach nur „High“ und „Low“, sondern zwischen diesen Zuständen hin- und herwechseln. Also ein Taktsignal ausgeben. Dieses Taktsignal wird als PWM-Signal realisiert, bei dem die Breite des Pulses über die Zeit eingestellt werden kann. Das heißt, es wird die Dauer des Leuchtens der LED eingestellt und somit die Helligkeit der Leuchtdiode gesteuert.
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

- LED1: Leuchtdiode, rot, gelb oder grün
- R1: Widerstand, 470 Ohm (Gelb-Violett-Schwarz-Schwarz)
- Verbinde die Anode (langer Anschluss) der Leuchtdiode mit dem GPIO-Pin.
- Verbinde die Kathode (kurzer Anschluss) der Leuchtdiode mit dem Widerstand.
- Verbinde die andere Seite des Widerstands mit dem GND-Pin.
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 utime import sleep # Initialisierung von GPIO13 als PWM-Ausgang led = PWM(Pin(13)) # 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
Verschiedene Parameter im Programm sorgen dafür, das die LED pulsiert. Allerdings nicht besonders schön. Es sieht sehr nach gewollt, aber nicht gekonnt aus. Der Programmcode lädt zum Experimentieren ein.
- Die Zeile „sleep(0.1)“ gibt an wie lange in Sekunden zwischen den Veränderungsschritte gewartet werden soll. Vergrößere und verkleinere den Wert von „0.1“. Zum Beispiel auf „0.5“ oder „0.05“.
- Softwareseitig kann das PWM-Signal einen Wert 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.
- Von 0 (LED aus) nach 65.535 (LED leuchtet voll) wird 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.
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
Elektronik mit dem Raspberry Pi
Die Stärken des Raspberry Pi liegen klar in der Computer-Architektur mit typischen Computer-Schnittstellen und Möglichkeit zum Ausführen von Open-Source-Software für Linux.
Weitere verwandte Themen:
- Raspberry Pi Pico
- Raspberry Pi Pico: GPIO-Grundlagen
- Raspberry Pi Pico: GPIO-Eingang beschalten
- Raspberry Pi Pico: GPIO-Ausgang beschalten
- Elektronik mit dem Raspberry Pi Pico
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 Mehr Informationen Elektronik-Set jetzt bestellen
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
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