10M+ Elektrické součástky na skladě
Certifikováno ISO
Záruční doba zahrnuta
Rychlé doručení
Těžko nalezené díly?
My je zdrojíme.
Požádat o nabídku

Vysvětlení Raspberry Pi PWM: GPIO řízení, aplikace a řešení problémů

Jun 04 2026
Zdroj: Michael Chen
Procházet: 706

Pulse Width Modulation (PWM) je jednou z nejdůležitějších technik používaných v elektronice a automatizačních projektech Raspberry Pi. Umožňuje digitálním GPIO pinům simulovat analogové řízení úpravou časování signálu místo výstupního napětí.

Figure 1. Raspberry Pi PWM

Přehled Raspberry Pi PWM

Pulse Width Modulation (PWM) je metoda, která umožňuje pinům Raspberry Pi GPIO ovládat výstupní výkon rychlým přepínáním digitálního signálu ZAPNOUT a VYPNOUT. Místo vytvoření skutečného analogového napětí PWM mění dobu, po kterou signál zůstává VYSOKÝ během každého cyklu. Toto procento včasného zapnutí se nazývá duty cycle.

Jak PWM funguje na Raspberry Pi

Figure 2. How PWM Works on Raspberry Pi

PWM signál opakovaně přepíná pin Raspberry Pi GPIO mezi stavem VYSOKÝ a NÍZKÝ. Signál zůstává digitální, ale připojená zařízení reagují na průměrný efekt přepínání.

Dva hlavní parametry řídí provoz PWM:

PWM parametrVýznam
FrekvenceKolikrát se signál za sekundu opakuje
Pracovní cyklusJak dlouho signál zůstává zapnutý během každého cyklu

Na GPIO pinech Raspberry Pi je HIGH přibližně 3,3V. 50% pracovní cyklus znamená, že signál zůstává VYSOKÝ polovinu času a NÍZKÝ polovinu času. To může způsobit, že LED bude vypadat polojasně nebo snížit průměrný výkon dodaný motoru.

Pracovní cyklus se počítá přízí:

Pracovní cyklus = ON time / Celkové období × 100 %

Pracovní cyklusChování signáluPraktický dopad
0 %Vždy VYPNUTÉŽádný výstup
25 %ZAPNUTO po čtvrtinu cykluNízký výstup
50 %ZAPNUTO pro polovinu cykluStřední výstup
75 %ZAPNUTO po tři čtvrtiny cykluVysoký výstup
100 %Vždy ZAPNUTÉPlný výstup

Zvýšení pracovního cyklu zvyšuje průměrný výkon, zatímco jeho snížení jej snižuje.

Frekvence PWM je počet cyklů PWM za sekundu. Měří se v hertzech (Hz).

Frekvence se počítá příčetně:

f=1/T

ZařízeníTypická frekvence PWM
LED diodyStovky Hz nebo více
DC motoryStovky Hz až několik kHz
ServaKolem 50 Hz
Zvukový výstupMnohem vyšší frekvence

Špatná frekvence může způsobit blikající LED, hlučné motory, nestabilní serva nebo špatnou kvalitu zvuku.

Hardwarové PWM vs softwarové PWM na Raspberry Pi

Figure 3. Hardware PWM vs Software PWM on Raspberry Pi

TémaHardware PWMSoftware PWM
DefinicePoužívá dedikovaný PWM hardware uvnitř procesoru Raspberry PiPoužívá softwarově řízené GPIO přepínání k vytváření PWM pulzů
Časové řízeníŘízeno hardwaremOvládáno softwarem a operačním systémem Linux
Přesnost načasováníVysokéStřední
Stabilita signáluVelmi stabilní s menším jitteremMůže se třást, zvlášť při vysoké zátěži CPU
Využití CPUNízké využití CPUVyšší využití CPU
GPIO FlexibilitaOmezeno na vybrané GPIO pinyMůže fungovat na mnoha GPIO pinech
Frekvenční řízeníPřesnější a stabilnějšíZávisí na zatížení systému
Výkon při zátěžiUdržuje stabilní výstup lépe během pozadíMůže se stát nestabilním, když Linuxové úlohy na pozadí přeruší časování pulzů
Nejlepší aplikaceServa, motorové ovladače, ventilátory, audio výstup, přesné řídicí systémyStmívání LED, projekty pro začátečníky, řízení při nízkých rychlostech, indikátory stavu
Hlavní výhodaPlynulý a přesný výstup PWMSnadné nastavení a více GPIO možností
Hlavní omezeníDostupné pouze na vybraných pinechMéně přesné časování
Doporučené použitíPoužití, když záleží na přesnosti načasováníPoužití pro jednoduché projekty, kde jsou malé časové chyby přijatelné

Raspberry Pi PWM GPIO piny a konfigurace

Figure 4. Raspberry Pi PWM GPIO Pins

Číslování GPIO a hardwarové PWM piny

Raspberry Pi používá více GPIO číselných systémů. Většina moderních Python knihoven používá číslování BCM, zatímco fyzické číslování označuje skutečná umístění pinů v hlavičce.

Typ číslováníVýznam
Číslování BCMBroadcom GPIO číslování se používá interně
Fyzické číslování pinůSkutečné pozice hlavičkových pinů
Číslování WiringPiStarší zastaralý číselný systém

Vždy si ověřte GPIO číslování před zapojením hardwaru.

Běžné hardwarové PWM piny

BCM GPIOFyzický odznakPWM kanálBěžné použití
GPIO12Pin 32PWM0LED, motory, serva
GPIO13Pin 33PWM1LED, motory, serva
GPIO18Pin 12PWM0Audio, serva, řízení motoru
GPIO19Pin 35PWM1Audio, serva, řízení motoru

GPIO18 se běžně používá, protože podporuje hardwarové PWM a je široce podporován v PWM tutoriálech a knihovnách.

Knihovny PWM a konfigurace

Běžné PWM knihovny Raspberry Pi

KnihovnaHlavní účelPoznámky
RPi.GPIOZákladní řízení GPIO a PWMPřátelské pro začátečníky
gpiozeroZjednodušené řízení zařízeníVysokoúrovňové rozhraní
pigpioPřesné načasování a pokročilé PWMPodporuje časování DMA
lgpioModerní GPIO řízeníPřístup na nižší úrovni

Typické parametry konfigurace PWM

ParametrPopis
FrekvenceRychlost přepínání PWM
Pracovní cyklusProcento času ON
GPIO PinVybraný výstupní pin PWM
PWM režimHardwarový PWM nebo softwarový PWM

Omezení PWM a bezpečnost zapojení

Hardware PWM pro Raspberry Pi má několik omezení, která se stávají důležitými v robotice, motorickém řízení, audio systémech a průmyslových aplikacích.

OmezeníVysvětlení
Omezené PWM kanályK dispozici je pouze malý počet hardwarových PWM výstupů
Sdílené funkceNěkteré GPIO piny sdílejí periferie
Zvukové konfliktyPWM může kolidovat s integrovaným zvukem
Omezení počtu odznakůNe všechny GPIO piny podporují hardwarové PWM
Sdílení frekvencíNěkteré PWM kanály sdílejí zdroje hodin
Závislost DMAPokročilé metody PWM mohou využívat DMA zdroje

Mnoho problémů s PWM je způsobeno spíše chybami v zapojení než softwarovými problémy.

Chyba v zapojeníProč na tom záleží
Kombinace BCM a fyzického číslováníOvládá špatný GPIO pin
Přímé připojení motorů k GPIOMůže poškodit Raspberry Pi
Chybějící společná půdaPříčiny nestabilních signálů
Překročení limitů GPIO prouduMůže trvale poškodit GPIO piny
Chybějící zpětná diodaNapěťové špičky mohou poškodit součástky
Špatné napěťové připojeníGPIO piny podporují pouze 3,3V logiku
Volné propojovací vodičeZpůsobuje nestabilní PWM signály

Doporučené ochranné komponenty

KomponentaÚčel
MOSFETBezpečně přepíná zátěže s vyšším proudem
H-Bridge DriverOvládá rychlost a směr motoru
Dioda s zpětným proudemChrání před indukčními napěťovými špičkami
Externí napájeníBezpečně napájí motory
OptocouplerZajišťuje elektrickou izolaci

Aplikace Raspberry Pi PWM

LED stmívací systémy

Figure 5. LED Dimming Systems

PWM se široce používá v LED projektech Raspberry Pi, protože dokáže ovládat jas bez nutnosti skutečného analogového výstupního pinu. Změnou pracovního cyklu mohou LED diody působit slaběji nebo jasněji. To je užitečné pro ovládání jasu LED, míchání barev RGB, dekorativní osvětlení, systémy adaptivní jasu a indikátory stavu. Měla by být použita dostatečně vysoká frekvence PWM, aby se zabránilo viditelnému blikání.

Řízení rychlosti motoru

Figure 6. Motor Speed Control

PWM se běžně používá k řízení otáček stejnosměrných motorů v robotických kolech, čerpadlech, ventilátorech, dopravníkových systémech a automatizačních pohonech. Místo přímé změny napájecího napětí PWM upravuje průměrný výkon dodávaný motoru. Vyšší pracovní cykly obvykle zvyšují rychlost motoru, zatímco nižší pracovní cykly ji snižují. Externí ovladače motorů jsou potřeba, protože piny GPIO Raspberry Pi nemohou bezpečně pohánět motory přímo.\

Řízení polohy serva

Figure 7. Servo Position Control

Servomotory používají opakující se řídicí pulzy, kde šířka pulzu určuje polohu v robotických ramenech, pan-tilt kamerových systémech, RC vozidlech a automatizačních systémech. Malé časovací chyby mohou způsobit třes, bzučení nebo nestabilní pohyb, proto je stabilní časování PWM důležité pro spolehlivé řízení serva.

Generování audio signálu

Figure 8. Audio Signal Generation

Raspberry Pi PWM dokáže generovat jednoduché tóny, alarmy, bzučáky a základní zvukové signály přepínáním GPIO pinů na slyšitelných frekvencích. PWM je užitečný pro jednoduchý vstup vloženého zvuku, ale nemůže plně nahradit dedikovaný DAC pro vysoce kvalitní audio aplikace.

Průmyslové a IoT aplikace

Figure 9. Industrial and IoT Applications

PWM je užitečný v průmyslových a IoT systémech Raspberry Pi, protože dokáže ovládat nastavitelné hardwarové výstupy. Mezi běžné aplikace patří chytré zemědělství, monitorování životního prostředí, systémy HVAC, průmyslová automatizace a řídicí systémy IoT. PWM často ovládá ventilátory, čerpadla, ventily, osvětlovací systémy a akční pohony.

Raspberry Pi vs Arduino pro PWM

Figure 10. Raspberry Pi vs Arduino for PWM

KategorieRaspberry PiArduino
Operační systémBěží na Linux OSBěží jednoduchý firmware
Výpočetní výkonVyšší výpočetní výkon pro pokročilé aplikaceNižší výpočetní výkon, ale optimalizovaný pro řídicí úkoly
Časování PWMMéně předvídatelné kvůli multitaskingu OSPředvídatelnější chování PWM v reálném čase
LatenceStřední latenceNižší latence s rychlejší odezvou hardwaru
Hardwarová kontrolaNepřímý hardwarový přístup přes operační systém a knihovnyPřímý hardwarový přístup
Stabilita PWMDobré pro univerzální PWMLepší pro stabilní motorické řízení a řídicí smyčky
NetworkingVynikající podpora sítí a IoTOmezené sítě bez dalších modulů
MultitaskingMůže spouštět servery, skripty, databáze a více aplikacíOmezená schopnost multitaskingu
ProgramováníSnadné programování na vysoké úrovni v PythonuJednoduché nízkoúrovňové programování s Arduino IDE
Začátečnická elektronikaDobré pro začátečníky zaměřené na softwareVýborné pro začátečníky v elektronice
Chytrá automatizaceVynikající pro propojené chytré automatizační systémyDobré pro samostatnou automatizaci
Řízení motoru v reálném časeStřední výkonVynikající výkon
Přesné časováníStřední přesnost načasováníVýborná přesnost načasování
Nejlepší případy použitíIoT systémy, chytrá automatizace, vzdálený monitoring, projekty založené na LinuxuMotory, serva, robotika, vestavěné řízení, PWM v reálném čase
Hlavní výhodaKombinuje PWM s pokročilým softwarem a sítíPoskytuje přesné a stabilní řízení PWM v reálném čase

Řešení problémů s Raspberry Pi PWM

ProblémMožná příčinaDoporučené řešení
Signál nefungujeŠpatné číslování GPIOZkontrolujte, zda kód používá BCM, fyzický nebo jiný číselný systém.
Signál nefungujeNesprávné zapojeníZnovu zkontrolujte GPIO připojení, umístění rezistoru a sdílenou zem.
Signál nefungujeNepodporovaný pinOvěřte, zda vybraný pin podporuje hardwarové nebo softwarové PWM.
Signál nefungujeProblém s knihovnou nebo povolenímOvěřte instalaci, oprávnění a příkazy pro instalaci GPIO knihovny.
Servo jitterSlabý zdroj napájeníPoužijte samostatný zdroj pro servo.
Servo jitterChybějící společná půdaPřipojte zem Raspberry Pi k zemnímu zdroji serva.
Servo jitterSoftwarová PWM nestabilitaPoužijte hardwarový PWM nebo stabilnější knihovnu jako pigpio.
Servo jitterElektrický šumZkraťte vodiče a zlepšete filtrování napájení nebo uspořádání kabelů.
LED blikáníFrekvence příliš nízkáZvyšujte PWM frekvenci, dokud blikání nebude viditelné.
LED blikáníŠpatné zapojeníZkontrolujte hodnoty rezistorů, uvolněné spoje a kvalitu zapojení.
Hluk motoru nebo nestabilitaSlabý zdroj napájeníPoužijte externí zdroj napájení motoru místo napájení z GPIO.
Hluk motoru nebo nestabilitaChybějící ochranné složkyPoužívejte správný ovladač motoru a podle potřeby přidejte ochranné součástky, například diodu flyback.
Hluk motoru nebo nestabilitaNesprávná frekvenceNastavte frekvenci PWM tak, aby vyhovovala obvodu motoru a měniče.
Chyby PiPiaDaemon neběžíZačněte nebo restartujte pigpio démona.
Chyby PiPiaKonflikty GPIOZkontrolujte, jestli jiný program už nepoužívá stejný GPIO pin.

Často kladené otázky [FAQ]

Proč je PWM důležité na Raspberry Pi, i když GPIO piny jsou pouze digitální?

PWM umožňuje pinům Raspberry Pi GPIO simulovat analogové řízení rychlým přepínáním signálů mezi VYSOKÝM a NÍZKÝM stavem. Místo přímé změny napětí PWM mění pracovní cyklus tak, aby reguloval průměrné dodávky energie. To umožňuje ztlumit LED diody, upravovat otáčky motoru, ovládat polohu serva a spravovat ventilátory pomocí standardních digitálních GPIO pinů.

Kdy by se měl na Raspberry Pi používat hardwarový PWM místo softwarového PWM?

Hardwarové PWM je vhodnější pro aplikace vyžadující stabilní časování a přesnou generaci pulzů, jako jsou serva, motorové ovladače, audio výstup a robotika. Protože dedikovaný hardware ovládá signál, vytváří méně jitterů a spotřebovává méně CPU zdrojů. Softwarové PWM obvykle stačí pro jednodušší úkoly, jako je stmívání LED nebo indikátory stavu, kde jsou drobné časové chyby méně patrné.

Proč může nesprávná frekvence PWM způsobovat problémy v projektech Raspberry Pi?

Různá zařízení nejlépe reagují na různé PWM frekvence. Pokud je frekvence příliš nízká, LED diody mohou viditelně blikat, motory mohou produkovat hluk nebo se pohybovat nepravidelně a serva mohou být nestabilní. Velmi vysoké frekvence mohou také snížit rozlišení PWM nebo zvýšit nároky na zpracování. Volba správné frekvence zlepšuje výkon, plynulost a spolehlivost.

Proč by se motory a serva nikdy neměly přímo připojit k GPIO pinům Raspberry Pi?

Piny GPIO Raspberry Pi podporují pouze nízkoproudové 3,3V logické signály a nemohou bezpečně napájet motory nebo serva přímo. Zařízení s vysokým proudem mohou poškodit GPIO piny, způsobit napěťové špičky nebo způsobit nestabilní provoz. Externí ovladače, MOSFETy, H-bridge obvody, flyback diody a samostatné napájecí zdroje pomáhají chránit Raspberry Pi a zvyšovat spolehlivost PWM.

Proč je Arduino často lepší pro přesné ovládání PWM než Raspberry Pi?

Desky Arduino jsou navrženy pro hardwarovou kontrolu v reálném čase a běží na jednoduchém firmwaru bez multitaskingového operačního systému. To umožňuje předvídatelnější načasování PWM, nižší latenci a lepší stabilitu motorů, serv a řídicích smyček. Raspberry Pi je silnější v síťových aplikacích, linuxových aplikacích, IoT systémech a chytré automatizaci, ale aktivita na pozadí Linuxu může ovlivnit přesnost časování PWM.