10M+ Elektronische Bauteile auf Lager
ISO-zertifiziert
Garantie inklusive
Schnelle Lieferung
Schwierige Teile zu finden?
Wir beschaffen sie.
Angebot anfordern

Raspberry Pi PWM erklärt: GPIO-Steuerung, Anwendungen und Fehlersuche

Jun 04 2026
Quelle: Michael Chen
Durchsuchen: 1043

Die Pulsbreitenmodulation (PWM) ist eine der wichtigsten Techniken, die in Raspberry Pi-Elektronik- und Automatisierungsprojekten verwendet werden. Es ermöglicht digitalen GPIO-Pins, eine analoge Steuerung zu simulieren, indem sie das Signaltiming statt der Ausgangsspannung anpassen.

Figure 1. Raspberry Pi PWM

Raspberry Pi PWM Überblick

Pulsbreite Modulation (PWM) ist eine Methode, die es Raspberry Pi GPIO-Pins ermöglicht, die Ausgangsleistung zu steuern, indem ein digitales Signal schnell AN und AUS geschaltet wird. Anstatt eine echte analoge Spannung zu erzeugen, ändert PWM die Zeitspanne, in der das Signal während jedes Zyklus HOCH bleibt. Dieser ON-Time-Prozentsatz wird als Duty Cycle bezeichnet.

Wie PWM auf Raspberry Pi funktioniert

Figure 2. How PWM Works on Raspberry Pi

Ein PWM-Signal schaltet wiederholt einen Raspberry Pi GPIO-Pin zwischen HOCH und NIEDRIG um. Das Signal bleibt digital, aber verbundene Geräte reagieren auf den durchschnittlichen Effekt des Schaltens.

Zwei Hauptparameter steuern den PWM-Betrieb:

PWM-ParameterBedeutung
FrequenzWie oft wiederholt sich das Signal pro Sekunde
Duty CycleWie lange bleibt das Signal während jedes Zyklus AN

Bei Raspberry Pi GPIO-Pins beträgt HOCH etwa 3,3 V. Ein Duty Cycle von 50 % bedeutet, dass das Signal die Hälfte der Zeit HOCH und die Hälfte der Zeit NIEDRIG bleibt. Dies kann eine LED halbhell erscheinen lassen oder die durchschnittliche Leistung für einen Motor verringern.

Der Duty Cycle wird berechnet mit:

Duty Cycle = ON Time / Gesamtzeitraum × 100 %

Duty CycleSignalverhaltenPraktische Wirkung
0%Immer AUSKeine Ausgabe
25%AN für ein Viertel des ZyklusNiedrige Leistung
50%AN für die Hälfte des ZyklusMittlere Leistung
75%AN für drei Viertel des ZyklusHohe Leistung
100%Immer ANVolle Leistung

Eine Erhöhung des Duty Cycle erhöht die durchschnittliche Leistung, während eine Verringerung des Duty Cycle sie verringert.

PWM-Frequenz ist die Anzahl der PWM-Zyklen pro Sekunde. Sie wird in Hertz (Hz) gemessen.

Die Häufigkeit wird berechnet mit:

f=1/T

GerätTypische PWM-Frequenz
LEDsHunderte Hz oder mehr
GleichstrommotorenHunderte Hz auf mehrere kHz
ServosEtwa 50 Hz
AudioausgabeDeutlich höhere Frequenzen

Die falsche Frequenz kann zu flackernden LEDs, lauten Motoren, instabilen Servos oder schlechter Audioqualität führen.

Hardware-PWM vs. Software-PWM auf Raspberry Pi

Figure 3. Hardware PWM vs Software PWM on Raspberry Pi

ThemaHardware-PWMSoftware PWM
DefinitionVerwendet dedizierte PWM-Hardware im Raspberry Pi ProzessorVerwendet softwaregesteuertes GPIO-Switching zur Erstellung von PWM-Impulsen
ZeitsteuerungGesteuert von HardwareGesteuert von Software und dem Linux-Betriebssystem
ZeitgenauigkeitHighModerat
SignalstabilitätSehr stabil mit weniger RuckelnKann Jitter, besonders unter hoher CPU-Last
CPU-NutzungGeringe CPU-NutzungHöhere CPU-Auslastung
GPIO-FlexibilitätBeschränkt auf ausgewählte GPIO-PinsKann an vielen GPIO-Pins arbeiten
FrequenzregelungGenauer und stabilerHängt von der Systembelastung ab
Leistung unter LastErhält während der Hintergrundaktivität eine stabile Ausgabe besserKann instabil werden, wenn Linux-Hintergrundaufgaben das Pulstiming unterbrechen
Beste AnwendungenServos, Motorantriebe, Ventilatoren, Audioausgang, PräzisionssteuerungssystemeLED-Dimmung, Anfängerprojekte, Steuerung mit niedriger Geschwindigkeit, Statusanzeigen
HauptvorteilGlatter und präziser PWM-AusgangEinfache Einrichtung und mehr GPIO-Optionen
HauptbegrenzungNur auf ausgewählten Pins verfügbarWeniger genaues Timing
Empfohlene VerwendungVerwenden Sie, wenn die Zeitgenauigkeit zähltVerwendung für einfache Projekte, bei denen kleine Zeitfehler akzeptabel sind

Raspberry Pi PWM GPIO-Pins und Konfiguration

Figure 4. Raspberry Pi PWM GPIO Pins

GPIO-Nummerierung und Hardware-PWM-Pins

Raspberry Pi verwendet mehrere GPIO-Nummerierungssysteme. Die meisten modernen Python-Bibliotheken verwenden BCM-Nummerierung, während physische Nummerierung die tatsächlichen Pin-Positionen im Header bezieht.

NummerierungstypBedeutung
BCM-NummerierungDie Broadcom GPIO-Nummerierung wird intern verwendet
Physische PIN-NummerierungTatsächliche Positionen der Header-Pins
WiringPi-NummerierungÄlteres veraltetes Nummerierungssystem

Überprüfe immer die GPIO-Nummern, bevor du die Hardware verkabelst.

Gängige Hardware-PWM-Pins

BCM GPIOPhysischer PinPWM-KanalGebrauchsgebrauch
GPIO12Pin 32PWM0LEDs, Motoren, Servos
GPIO13Pin 33PWM1LEDs, Motoren, Servos
GPIO18Pin 12PWM0Audio, Servos, Motorsteuerung
GPIO19Pin 35PWM1Audio, Servos, Motorsteuerung

GPIO18 wird häufig verwendet, da es Hardware-PWM unterstützt und in PWM-Tutorials und Bibliotheken weit verbreitet ist.

PWM-Bibliotheken und Konfiguration

Gängige Raspberry Pi PWM-Bibliotheken

BibliothekHauptzweckAnmerkungen
RPi.GPIOGrundlegende GPIO- und PWM-SteuerungAnfängerfreundlich
gpiozeroVereinfachte GerätesteuerungHigh-Level-Schnittstelle
pigpioPräzises Timing und fortschrittliche PWMUnterstützt DMA-Timing
lgpioModerne GPIO-SteuerungZugang auf niedriger Ebene

Typische PWM-Konfigurationsparameter

ParameterBeschreibung
FrequenzPWM-Schaltgeschwindigkeit
Duty CycleProzentsatz der ON-Zeit
GPIO-PinAusgewählter PWM-Ausgangspin
PWM-ModusHardware-PWM oder Software-PWM

PWM-Einschränkungen und Verkabelungssicherheit

Raspberry Pi Hardware-PWM hat mehrere Einschränkungen, die in der Robotik, Motorsteuerung, Audiosystemen und industriellen Anwendungen wichtig werden.

EinschränkungErklärung
Begrenzte PWM-KanäleEs sind nur eine kleine Anzahl von Hardware-PWM-Ausgängen verfügbar
Gemeinsame FunktionenEinige GPIO-Pins teilen sich Peripheriegeräte
Audio-KonfliktePWM kann mit dem Onboard-Audio kollidieren
Pin-BeschränkungenNicht alle GPIO-Pins unterstützen Hardware-PWM
FrequenzteilungEinige PWM-Kanäle teilen sich Taktquellen
DMA-AbhängigkeitFortgeschrittene PWM-Methoden können DMA-Ressourcen verwenden

Viele PWM-Probleme werden durch Verdrahtungsfehler und nicht durch Softwareprobleme verursacht.

VerdrahtungsfehlerWarum es wichtig ist
BCM und physische Nummerierung mischenKontrolliert den falschen GPIO-Pin
Motoren direkt an GPIO anschließenKann Raspberry Pi beschädigen
Fehlende gemeinsame BasisVerursacht instabile Signale
Überschreitung der GPIO-StromgrenzenKann die GPIO-Pins dauerhaft beschädigen
Fehlende RückschlagdiodeSpannungsspitzen können Bauteile beschädigen
Falsche SpannungsverbindungGPIO-Pins unterstützen nur 3,3V-Logik
Lose ÜberbrückendrähteVerursacht instabile PWM-Signale

Empfohlene Schutzkomponenten

KomponenteZweck
MOSFETSchaltet sicher höhere Stromlasten um
H-Bridge DriverSteuert Motorgeschwindigkeit und -richtung
Flyback-DiodeSchützt gegen induktive Spannungsspitzen
Externe StromversorgungTreibt Motoren sicher an
OptocouplerBietet elektrische Isolierung

Raspberry Pi PWM-Anwendungen

LED-Dimmsysteme

Figure 5. LED Dimming Systems

PWM wird häufig in Raspberry Pi LED-Projekten eingesetzt, da es die Helligkeit steuern kann, ohne einen echten analogen Ausgangspin zu benötigen. Durch die Änderung des Arbeitszyklus können LEDs dunkler oder heller erscheinen. Dies ist nützlich für LED-Helligkeitskontrolle, RGB-Farbmischung, dekorative Beleuchtung, adaptive Helligkeitssysteme und Statusanzeigen. Eine ausreichend hohe PWM-Frequenz sollte verwendet werden, um sichtbares Flimmern zu verhindern.

Motordrehzahlregelung

Figure 6. Motor Speed Control

PWM wird häufig verwendet, um die Drehzahl von Gleichstrommotoren in Roboterrädern, Pumpen, Ventilatoren, Fördersystemen und Automatisierungsaktuatoren zu steuern. Anstatt die Versorgungsspannung direkt zu ändern, passt PWM die durchschnittliche an den Motor gelieferte Leistung an. Höhere Betriebszeiten erhöhen in der Regel die Motordrehzahl, während niedrigere Betriebszeiten sie verringern. Externe Motortreiber sind erforderlich, da Raspberry Pi GPIO-Pins Motoren nicht sicher direkt antreiben können.

Servo-Positionssteuerung

Figure 7. Servo Position Control

Servomotoren verwenden wiederholende Steuerimpulse, bei denen die Pulsbreite die Position in Roboterarmen, Pan-Tilt-Kamerasystemen, RC-Fahrzeugen und Automatisierungssystemen bestimmt. Kleine Timing-Fehler können zu Zittern, Brummen oder instabiler Bewegung führen, daher ist stabiles PWM-Timing wichtig für eine zuverlässige Servosteuerung.

Erzeugung von Audiosignalen

Figure 8. Audio Signal Generation

Ein Raspberry Pi PWM kann einfache Töne, Alarme, Summer und grundlegende Audiosignale erzeugen, indem GPIO-Pins bei hörbaren Frequenzen geschaltet werden. PWM ist für einfache eingebettete Tonausgaben nützlich, kann aber einen dedizierten DAC für hochwertige Audioanwendungen nicht vollständig ersetzen.

Industrielle und IoT-Anwendungen

Figure 9. Industrial and IoT Applications

PWM ist in Raspberry Pi Industrie- und IoT-Systemen nützlich, da es verstellbare Hardware-Ausgänge steuern kann. Häufige Anwendungen sind intelligente Landwirtschaft, Umweltüberwachung, HLK-Systeme, industrielle Automatisierung und IoT-Steuerungssysteme. PWM steuert häufig Ventilatoren, Pumpen, Ventile, Beleuchtungssysteme und Aktuatoren.

Raspberry Pi vs Arduino für PWM

Figure 10. Raspberry Pi vs Arduino for PWM

KategorieRaspberry PiArduino
BetriebssystemLäuft mit Linux OSLäuft mit einfacher Firmware
RechenleistungHöhere Rechenleistung für fortgeschrittene AnwendungenGeringere Rechenleistung, aber optimiert für Steueraufgaben
PWM-TimingWeniger vorhersehbar wegen Multitasking-BetriebssystemsVorhersehbareres Echtzeit-PWM-Verhalten
LatenzModerate LatenzGeringere Latenz bei schnellerer Hardware-Reaktion
Hardware-SteuerungIndirekter Hardwarezugriff über Betriebssysteme und BibliothekenDirekter Hardware-Zugriff
PWM-StabilitätGut für allgemeine PWMBesser für stabile Motorsteuerung und Steuerschleifen
NetzwerkeAusgezeichnete Netzwerk- und IoT-UnterstützungBegrenztes Netzwerken ohne zusätzliche Module
MultitaskingKann Server, Skripte, Datenbanken und mehrere Anwendungen ausführenBegrenzte Multitasking-Fähigkeit
ProgrammgestaltungEinfache High-Level-Programmierung mit PythonEinfache Low-Level-Programmierung mit Arduino IDE
AnfängerelektronikGut für softwareorientierte AnfängerAusgezeichnet für Elektronik-Anfänger
Intelligente AutomatisierungAusgezeichnet für vernetzte intelligente AutomatisierungssystemeGut für eigenständige Automatisierung
Echtzeit-MotorsteuerungMäßige LeistungAusgezeichnete Leistung
PräzisionszeitmessungModerate ZeitgenauigkeitAusgezeichnete Zeitgenauigkeit
Beste AnwendungsfälleIoT-Systeme, intelligente Automatisierung, Fernüberwachung, Linux-basierte ProjekteMotoren, Servos, Robotik, eingebettete Steuerung, Echtzeit-PWM
HauptvorteilKombiniert PWM mit fortschrittlicher Software und NetzwerkenBietet präzise und stabile Echtzeit-PWM-Steuerung

Raspberry Pi PWM-Fehlerbehebung

ProblemMögliche UrsacheEmpfohlene Lösung
Signal funktioniert nichtFalsche GPIO-NummerierungÜberprüfe, ob der Code BCM, physisches oder ein anderes Nummerierungssystem verwendet.
Signal funktioniert nichtFalsche VerkabelungÜberprüfe die GPIO-Verbindungen, die Platzierung des Widerstands und die geteilte Masse erneut.
Signal funktioniert nichtNicht unterstützter PinBestätigen Sie, ob der ausgewählte Pin Hardware- oder Software-PWM unterstützt.
Signal funktioniert nichtBibliotheks- oder BerechtigungsproblemÜberprüfe die Installation, Berechtigungen und Setup-Befehle der GPIO-Bibliothek.
Servo jitterSchwache StromversorgungBenutze ein separates Netzteil für den Servo.
Servo jitterFehlende gemeinsame BasisVerbinden Sie die Raspberry Pi-Masse mit der Servo-Stromversorgungsmasse.
Servo jitterSoftware-PWM-InstabilitätVerwenden Sie Hardware-PWM oder eine stabilere Bibliothek wie Pigpio.
Servo jitterElektrisches RauschenVerkürze die Drähte und verbessere die Leistungsfilterung oder das Verdrahtungslayout.
LED-FlackernFrequenz zu niedrigErhöhe die PWM-Frequenz, bis das Flimmern nicht mehr sichtbar ist.
LED-FlackernSchlechte VerkabelungÜberprüfe die Widerstandswerte, lose Verbindungen und die Verkabelungsqualität.
Motorgeräusche oder InstabilitätSchwache StromversorgungVerwenden Sie ein externes Motornetzteil anstelle des Motors über GPIO.
Motorgeräusche oder InstabilitätFehlende SchutzkomponentenVerwenden Sie einen geeigneten Motortreiber und fügen Sie bei Bedarf Schutzkomponenten wie eine Rückschlagdiode hinzu.
Motorgeräusche oder InstabilitätFalsche FrequenzPassen Sie die PWM-Frequenz an den Motor- und Treiberkreis an.
Pigpio-FehlerDaemon läuft nicht ♪ Starte oder starte den Pigpio-Daemon neu.
Pigpio-FehlerGPIO-KonflikteÜberprüfe, ob ein anderes Programm bereits denselben GPIO-Pin verwendet.

Häufig gestellte Fragen [FAQ]

Warum ist PWM auf Raspberry Pi wichtig, obwohl GPIO-Pins nur digital verfügbar sind?

PWM ermöglicht es Raspberry Pi GPIO-Pins, analoge Steuerung zu simulieren, indem Signale schnell zwischen HIGH- und LOW-Zuständen geschaltet werden. Anstatt die Spannung direkt zu ändern, ändert PWM den Duty-Cycle, um die durchschnittliche Leistungsabgabe zu steuern. Dadurch ist es möglich, LEDs zu dimmen, die Motorgeschwindigkeit anzupassen, die Position der Servos zu steuern und Lüfter mit standardmäßigen digitalen GPIO-Pins zu steuern.

Wann sollte Hardware-PWM anstelle von Software-PWM auf Raspberry Pi verwendet werden?

Hardware-PWM eignet sich besser für Anwendungen, die stabiles Timing und präzise Pulserzeugung erfordern, wie Servos, Motorantriebe, Audioausgaben und Robotik. Da dedizierte Hardware das Signal steuert, erzeugt sie weniger Jitter und verbraucht weniger CPU-Ressourcen. Software-PWM ist in der Regel für einfachere Aufgaben wie LED-Dimming oder Statusanzeigen ausreichend, bei denen kleine Zeitfehler weniger auffällig sind.

Warum kann eine falsche PWM-Frequenz in Raspberry Pi-Projekten Probleme verursachen?

Verschiedene Geräte reagieren am besten auf unterschiedliche PWM-Frequenzen. Wenn die Frequenz zu niedrig ist, können LEDs sichtbar flackern, Motoren können Geräusche oder grobe Bewegungen erzeugen, und Servos können instabil werden. Sehr hohe Frequenzen können auch die PWM-Auflösung verringern oder den Verarbeitungsbedarf erhöhen. Die Wahl der richtigen Frequenz verbessert Leistung, Flüssigkeit und Zuverlässigkeit.

Warum sollten Motoren und Servos niemals direkt mit Raspberry Pi GPIO-Pins verbunden werden?

Raspberry Pi GPIO-Pins unterstützen nur niedrigstromige 3,3V-Logiksignale und können Motoren oder Servos nicht sicher direkt mit Strom versorgen. Hochstromgeräte können GPIO-Pins beschädigen, Spannungsspitzen verursachen oder einen instabilen Betrieb verursachen. Externe Treiber, MOSFETs, H-Bridge-Schaltungen, Flyback-Dioden und separate Netzteile helfen, den Raspberry Pi zu schützen und die Zuverlässigkeit des PWM zu verbessern.

Warum ist Arduino oft besser für präzise PWM-Steuerung als der Raspberry Pi?

Arduino-Boards sind für Echtzeit-Hardwaresteuerung konzipiert und führen einfache Firmware ohne Multitasking-Betriebssystem aus. Dies ermöglicht eine vorhersehbarere PWM-Steuerung, eine geringere Latenz und eine bessere Stabilität für Motoren, Servos und Steuerschleifen. Raspberry Pi ist stärker in Netzwerken, Linux-Anwendungen, IoT-Systemen und smarter Automatisierung, aber Linux-Hintergrundaktivitäten können die Genauigkeit des PWM-Timings beeinflussen.