Pulsbreddemodulation (PWM) er en metode, som mikrocontrollere bruger til at styre strømmen ved at tænde og slukke for signaler ved høj hastighed. Det bruges i LED'er, motorer, servoer, lyd- og strømsystemer. Denne artikel forklarer det grundlæggende om PWM, driftscyklus, timerdrift, tilstande, frekvens, opløsning og avancerede teknikker i klare detaljer.

Oversigt over pulsbreddemodulation (PWM)
PWM-timere er indbyggede hardwaremoduler inde i mikrocontrollere, der genererer digitale pulssignaler med justerbare driftscyklusser. I stedet for at stole på software til at skifte ben, hvilket bruger processorkraft og risikerer timing jitter, aflaster mikrocontrolleren dette job til hardwaretimeren. Dette gør det muligt at opretholde nøjagtigheden, mens den frigør CPU'en til at håndtere andre opgaver. Resultatet er effektiv multitasking, reduceret latenstid og bedre ydeevne i faktiske applikationer såsom motorstyring, LED-dæmpning, lydmodulation og signalgenerering. PWM's effektivitet og præcision gør det til rygraden i moderne indlejrede systemer, der bygger bro mellem digital kontrol og analog adfærd.
Pulsbredde modulation arbejdscyklus

Bølgeformen viser et gentaget signal, der skifter mellem 0V og 5V. Perioden er markeret som 10 ms, hvilket repræsenterer tiden for en hel cyklus. Inden for denne periode forbliver signalet højt (5V) i 3 ms, kendt som pulsbredden. Arbejdscyklussen beregnes derefter som forholdet mellem den høje tid og den samlede periode, hvilket giver 30 % i dette tilfælde. Det betyder, at signalet kun leverer strøm 30 % af tiden pr. cyklus. Frekvensen er også afledt af perioden, beregnet som 1 ÷ 10 ms = 100 Hz.
Beregning af driftscyklus i mikrocontroller-timere
Driftscyklussen fortæller os, hvor meget af den samlede tid, et signal er tændt sammenlignet med hele cyklussen for bølgeformen. I en mikrocontroller er dette vigtigt, fordi det bestemmer, hvor meget strøm der sendes til en enhed i løbet af hver cyklus.
For at beregne det bruger du en simpel formel: Duty Cycle (%) = (Pulse Width ÷ Period) × 100. Hvis signalet er aktivt HØJT, er driftscyklussen den brøkdel af tiden, signalet forbliver HØJT. Hvis signalet er aktivt LAVT, er driftscyklussen den brøkdel af tiden, det forbliver LAVT.
Pulsbredde modulationstimer

Dette billede viser, hvordan en PWM-timer fungerer ved at forbinde spændingsudgangen til en tæller. Tælleren tæller gentagne gange fra 0 op til 9 og nulstiller derefter, hvilket skaber signalets periode. Når tælleren når en indstillet matchværdi (her 2), går outputtet højt og forbliver højt, indtil tælleren løber over, hvilket definerer pulsbredden. Overløbspunktet nulstiller cyklussen og starter en ny periode.
Timeren bestemmer driftscyklussen ved at styre, hvornår udgangen tændes (matcher), og hvornår den nulstilles (overløb). Justering af matchværdien ændrer bredden af det høje signal og styrer direkte, hvor meget strøm PWM leverer til en belastning.
Kantjusterede og centerjusterede PWM-tilstande
Kantjusteret tilstand

I kantjusteret PWM tæller tælleren kun op fra nul til et indstillet maksimum, og skift sker i begyndelsen eller slutningen af cyklussen. Dette gør det ligetil at implementere og meget effektivt, da de fleste mikrocontrollere og timere understøtter det. Fordi alle koblingskanter er justeret til den ene side af perioden, kan det føre til ujævn strømrippel og højere elektromagnetisk interferens (EMI).
Centerjusteret (fasekorrekt) tilstand

I centerjusteret PWM tæller tælleren op og derefter ned igen inden for hver cyklus. Dette sikrer, at koblingskanter fordeles rundt om midten af bølgeformen, hvilket skaber et mere afbalanceret output. Symmetrien reducerer harmoniske, drejningsmomentrippel i motorer og EMI i kraftsystemer. Selvom det er lidt mere komplekst og mindre effektivt med hensyn til frekvensudnyttelse, giver det meget renere outputkvalitet.
Valg af den rigtige PWM-frekvens
• LED-dæmpning kræver frekvenser over 200 Hz for at eliminere synligt flimmer, mens skærmbaggrundsbelysning og belysningssystemer af høj kvalitet ofte bruger 20-40 kHz for at holde sig uden for menneskelig opfattelse og minimere støj.
• Elektriske motorer fungerer bedst med PWM-frekvenser mellem 2-20 kHz og afbalancerer koblingstab med drejningsmomentjævnhed; Lavere værdier giver højere driftscyklusopløsning, mens højere værdier reducerer hørbar støj og rippel.
• Standard hobbyservoer er afhængige af faste styresignaler omkring 50 Hz (20 ms periode), hvor pulsbredde, ikke frekvens, bestemmer vinkelpositionen.
• Lydgenerering og digital-til-analog-konvertering kræver PWM et godt stykke over det hørbare spektrum, over 22 kHz, for at forhindre interferens og tillade ren filtrering af signaler.
• Inden for effektelektronik afvejer frekvensvalg ofte mellem effektivitet, koblingstab, elektromagnetisk interferens og den specifikke belastnings dynamiske respons.
PWM-opløsning og trinstørrelse
Opløsning (trin)
Antallet af diskrete driftscyklusniveauer indstilles af timerens periodetælling (N). Hvis en tæller f.eks. kører fra 0 til 1023, giver det 1024 forskellige driftscyklustrin. Højere tal betyder finere kontrol af output.
Bit-dybde
Opløsning udtrykkes ofte i bits, beregnet som log₂(N). En 1024-trins tæller svarer til 10-bit opløsning, mens en 65536-tæller svarer til 16-bit opløsning. Dette definerer, hvor præcist intermittens driftscyklus kan justeres.
Tidstrin
Systemuret bestemmer det mindste trin, svarende til 1 ÷ fClock. Hurtigere clockhastigheder tillader kortere perioder og højere PWM-frekvenser, mens den stadig opretholder fin opløsning.
Afvejninger
Øget opløsning kræver flere timertællinger, hvilket igen sænker den maksimale PWM-frekvens for et givet ur. Omvendt reducerer højere frekvenser den tilgængelige opløsning.
Eksempel på PWM-forskalering og periodeopsætning
| Trin | Beregning | Resultat | Forklaring detaljer |
|---|---|---|---|
| MCU-ur | - | 24 MHz | Basisfrekvens, der driver timeren. |
| Anvend forskaleringsmiddel ÷8 | 24 MHz ÷ 8 | 3 MHz | Timeruret er blevet reduceret til et overskueligt tælleområde. |
| Timer periode | 3 MHz × 0,020 sek. | 60.000 optællinger | Indstilling af automatisk genindlæsning/perioderegister til 60.000 giver en ramme på 20 ms. |
| Opløsning pr. flueben | 1 ÷ 3 MHz | 0,333 μs | Hvert timertrin er lig med \~0.33 mikrosekunder. |
| Servo pulsstyring | 1–2 ms pulsbredde = 3000–6000 kryds | Giver jævn vinkelkontrol inden for 20 ms rammen. | - |
Avancerede PWM-kanalteknikker
Indsættelse af dødtid
Dødtid er en lille, kontrolleret forsinkelse indsat mellem omskiftning af komplementære transistorer i et halvbro- eller fuldbrokredsløb. Uden det kunne både enhederne på den høje og den lave side midlertidigt udføre på samme tid, hvilket forårsager en kortslutning kendt som gennemskydning. Ved at tilføje et par titusinder eller hundredvis af nanosekunders dødtid sikrer hardwaren sikre overgange og beskytter MOSFET'er eller IGBT'er mod skader.
Supplerende resultater
Komplementære udgange genererer to signaler, der er logiske modsætninger af hinanden. Dette er især nyttigt i push-pull-kredsløb, motordrivere og inverter stages, hvor den ene transistor skal slukke præcist, når den anden tænder. Brug af komplementære PWM-par forenkler driverkredsløbet og sikrer symmetri, forbedrer effektiviteten og reducerer forvrængning.
Synkrone opdateringer
I systemer med flere PWM-kanaler gør synkrone opdateringer det muligt for alle udgange at opdatere samtidigt. Uden denne funktion kan der opstå små tidsuoverensstemmelser (skævhed), hvilket fører til ujævn drift. I trefasede motordrev eller flerfaseomformere sikrer synkroniseret PWM balance, jævn ydeevne og reduceret elektromagnetisk interferens.
Kryds-udløsning
Krydsudløsning gør det muligt for timere at interagere med hinanden, så en PWM-hændelse kan starte, nulstille eller justere en anden timer. Denne funktion er kraftfuld i avancerede kontrolsystemer, der muliggør præcis koordinering af flere signaler. Anvendelser omfatter kaskademotordrev, sammenflettede strømomformere og synkroniseret sensorprøveudtagning, hvor timingforhold mellem kanaler er kritiske.
Servobevægelse med PWM-signaler
| Puls Bredde | Servo bevægelse |
|---|---|
| \~1,0 ms | Drejer helt til venstre eller drejer med uret med fuld hastighed |
| \~1,5 ms | Forbliver i midten eller holder op med at bevæge sig |
| \~2,0 ms | Drejer helt til højre eller drejer mod uret med fuld hastighed |
Konklusion
PWM er et hovedværktøj, der lader digitale systemer styre analoge enheder med nøjagtighed og effektivitet. Ved at lære driftscyklusser, timeropsætning, frekvensvalg, opløsningsafvejninger og avancerede metoder som dødtid eller gammakorrektion kan du designe pålidelige systemer. PWM fortsætter med at understøtte moderne elektronik inden for belysning, bevægelse, lyd og strømapplikationer.
Ofte stillede spørgsmål [FAQ]
Forbedrer PWM strømeffektiviteten?
Ja. PWM tænder eller slukker for enheder, hvilket minimerer varmetabet sammenlignet med analog spændingsstyring.
Skaber PWM elektromagnetisk interferens (EMI)?
Ja. Hurtig omskiftning genererer harmoniske, der forårsager EMI. Centerjusteret PWM reducerer det, og filtre hjælper med at undertrykke støj.
Hvorfor bruge et lavpasfilter med PWM?
Et lavpasfilter udjævner firkantbølgen til en gennemsnitlig DC-spænding, hvilket er nyttigt til lyd, analoge udgange og sensorsimulering.
Kan PWM styre varmeelementer?
Ja. Varmeapparater reagerer langsomt, så selv lave PWM-frekvenser (10-100 Hz) giver stabil temperaturkontrol.
Hvad bruges faseforskudt PWM til?
Den skifter timing mellem kanaler for at reducere strømspidser og balancere belastninger, hvilket er almindeligt i flerfasekonvertere og motordrev.
Hvordan forhindrer mikrocontrollere PWM-jitter?
De bruger dobbeltbufferede kasseapparater og synkroniserede opdateringer, så ændringer i driftscyklussen gælder rent i starten af hver cyklus.