Pulsbreddsmodulering (PWM) är en metod som mikrokontroller använder för att styra ström genom att slå på och av signaler med hög hastighet. Den används i lysdioder, motorer, servon, ljud och kraftsystem. Den här artikeln förklarar grunderna i PWM, arbetscykel, timerdrift, lägen, frekvens, upplösning och avancerade tekniker i tydlig detalj.

Översikt över pulsbreddsmodulering (PWM)
PWM-timers är inbyggda hårdvarumoduler inuti mikrokontroller som genererar digitala pulssignaler med justerbara arbetscykler. I stället för att förlita sig på programvara för att växla stift, vilket förbrukar processorkraft och riskerar att tajma jitter, avlastar mikrokontrollern det här jobbet till maskinvarutimern. Detta gör att den kan bibehålla noggrannheten samtidigt som CPU:n frigörs för att hantera andra uppgifter. Resultatet är effektiv multitasking, minskad latens och bättre prestanda i faktiska applikationer som motorstyrning, LED-dimning, ljudmodulering och signalgenerering. PWM:s effektivitet och precision gör den till ryggraden i moderna inbyggda system och överbryggar klyftan mellan digital styrning och analogt beteende.
Arbetscykel för pulsbreddsmodulering

Vågformen visar en upprepande signal som växlar mellan 0V och 5V. Perioden är markerad som 10 ms, vilket representerar tiden för en hel cykel. Inom den perioden förblir signalen hög (5V) i 3 ms, känd som pulsbredden. Sändningscykeln beräknas sedan som förhållandet mellan den höga tiden och den totala perioden, vilket ger 30 % i det här fallet. Detta innebär att signalen endast levererar ström 30 % av tiden per cykel. Frekvensen härleds också från perioden, beräknad som 1 ÷ 10 ms = 100 Hz.
Beräkning av arbetscykel i timers för mikrokontroller
Driftcykeln berättar hur mycket av den totala tiden en signal är påslagen jämfört med hela vågformens cykel. I en mikrokontroller är detta viktigt eftersom det bestämmer hur mycket ström som skickas till en enhet under varje cykel.
För att beräkna det använder du en enkel formel: Duty Cycle (%) = (Pulse Width ÷ Period) × 100. Om signalen är aktiv HÖG är arbetscykeln den del av tiden som signalen förblir HÖG. Om signalen är aktiv LÅG är arbetscykeln den del av tiden den förblir LÅG.
Timer för modulering av pulsbredd

Den här bilden visar hur en PWM-timer fungerar genom att länka spänningsutgången till en räknare. Räknaren räknar upprepade gånger från 0 upp till 9 och återställs sedan, vilket skapar signalens period. När räknaren når ett inställt matchningsvärde (här 2) går utdata högt och förblir högt tills räknaren svämmar över, vilket definierar pulsbredden. Överflödespunkten återställer cykeln och startar en ny period.
Timern bestämmer arbetscykeln genom att styra när utgången slås på (match) och när den återställs (overflow). Genom att justera matchningsvärdet ändras bredden på den höga signalen och styr direkt hur mycket ström PWM levererar till en belastning.
Kantjusterade och mittjusterade PWM-lägen
Kantjusterat läge

I kantjusterad PWM räknar räknaren bara upp från noll till ett inställt maxvärde, och växling sker i början eller slutet av cykeln. Detta gör det enkelt att implementera och mycket effektivt eftersom de flesta mikrokontroller och timers har inbyggt stöd för det. Eftersom alla kopplingskanter är inriktade mot ena sidan av perioden kan det leda till ojämn strömrippel och högre elektromagnetisk störning (EMI).
Mittjusterat (faskorrekt) läge

I mittjusterad PWM räknar räknaren upp och sedan tillbaka ner inom varje cykel. Detta säkerställer att switchande kanter fördelas runt mitten av vågformen, vilket skapar en mer balanserad utgång. Symmetrin minskar övertoner, vridmomentkrusning i motorer och EMI i kraftsystem. Även om det är något mer komplext och mindre effektivt när det gäller frekvensutnyttjande, ger det mycket renare utskriftskvalitet.
Välja rätt PWM-frekvens
• LED-dimning kräver frekvenser över 200 Hz för att eliminera synligt flimmer, medan bakgrundsbelysning av skärmar och högkvalitativa belysningssystem ofta använder 20–40 kHz för att hålla sig bortom mänsklig perception och minimera brus.
• Elmotorer fungerar bäst med PWM-frekvenser mellan 2–20 kHz, vilket balanserar kopplingsförluster med vridmomentjämnhet; Lägre värden ger högre intermittensupplösning, medan högre värden minskar hörbart brus och krusning.
• Vanliga hobbyservon förlitar sig på fasta styrsignaler runt 50 Hz (20 ms period), där pulsbredden, inte frekvensen, bestämmer vinkelpositionen.
• Ljudgenerering och digital-till-analog-konvertering kräver PWM långt över det hörbara spektrumet, över 22 kHz, för att förhindra störningar och möjliggöra ren filtrering av signaler.
• Inom kraftelektronik växlar frekvensval ofta mellan effektivitet, kopplingsförluster, elektromagnetiska störningar och den specifika lastens dynamiska respons.
PWM-upplösning och stegstorlek
Upplösning (steg)
Antalet diskreta arbetscykelnivåer ställs in av timerns periodantal (N). Om en räknare till exempel körs från 0 till 1023 ger det 1024 distinkta arbetscykelsteg. Högre antal innebär bättre kontroll över produktionen.
Bitdjup
Upplösningen uttrycks ofta i bitar, beräknade som log₂(N). En 1024-stegs räknare motsvarar 10-bitars upplösning, medan en 65536-räknare motsvarar 16-bitars upplösning. Detta definierar hur exakt arbetscykeln kan justeras.
Tidssteg
Systemklockan bestämmer den minsta ökningen, lika med 1 ÷ fClock. Snabbare klockfrekvenser möjliggör kortare perioder och högre PWM-frekvenser samtidigt som den bibehåller fin upplösning.
Kompromisser
Att öka upplösningen kräver fler timerräkningar, vilket i sin tur sänker den maximala PWM-frekvensen för en given klocka. Omvänt minskar högre frekvenser den tillgängliga upplösningen.
Exempel på PWM-förskalning och periodinställning
| Steg | Beräkning | Resultatet | Förklaring |
|---|---|---|---|
| MCU klocka | - | 24 MHz | Basfrekvens som driver timern. |
| Använd prescaler ÷8 | 24 MHz ÷ 8 | 3 MHz | Timerklockan har reducerats till ett hanterbart räkneområde. |
| Tidsperiod för timer | 3 MHz × 0,020 s | 60 000 enheter | Om du ställer in den automatiska omladdningen/periodregistret till 60 000 får du en ram på 20 ms. |
| Upplösning per fästing | 1 ÷ 3 MHz | 0,333 μs | Varje timersteg är lika med\~0,33 mikrosekunder. |
| Servo pulsstyrning | 1–2 ms pulsbredd = 3000–6000 fästingar | Ger smidig vinkelkontroll inom 20 ms ram. | - |
Avancerade PWM-kanaltekniker
Införande av dödtid
Dödtid är en liten, kontrollerad fördröjning som infogas mellan omkoppling av komplementära transistorer i en halvbrygga eller helbrygga. Utan den kan både enheterna på den höga sidan och den låga sidan tillfälligt leda samtidigt, vilket orsakar en kortslutning som kallas shoot-through. Genom att lägga till några tiotals eller hundratals nanosekunder av dödtid säkerställer hårdvaran säkra övergångar och skyddar MOSFET:ar eller IGBT:er från skador.
Kompletterande resultat
Komplementära utgångar genererar två signaler som är logiska motsatser till varandra. Detta är särskilt användbart i push-pull-kretsar, motordrivrutiner och växelriktarsteg, där en transistor måste stängas av exakt när den andra slås på. Att använda kompletterande PWM-par förenklar drivrutinskretsarna och säkerställer symmetri, vilket förbättrar effektiviteten och minskar distorsionen.
Synkrona uppdateringar
I system med flera PWM-kanaler gör synkrona uppdateringar det möjligt för alla utdata att uppdateras samtidigt. Utan den här funktionen kan små tidsfelmatchningar (skevhet) uppstå, vilket leder till ojämn drift. I trefasmotorstyrningar eller flerfasomvandlare säkerställer synkroniserad PWM balans, jämn prestanda och minskad elektromagnetisk störning.
Korsutlösning
Korsutlösning gör det möjligt för timers att interagera med varandra, så att en PWM-händelse kan starta, återställa eller justera en annan timer. Denna funktion är kraftfull i avancerade styrsystem, vilket möjliggör exakt samordning av flera signaler. Tillämpningar inkluderar kaskadmotorstyrningar, överlagrade effektomvandlare och synkroniserad sensorsampling, där tidsförhållanden mellan kanaler är avgörande.
Servorörelse med PWM-signaler
| Puls Bredd | Servo Rörelse |
|---|---|
| \~1.0 ms | Vrids helt åt vänster eller snurrar medurs i full hastighet |
| \~1.5 ms | Stannar i mitten eller slutar röra sig |
| \~2.0 ms | Vrider sig helt åt höger eller snurrar moturs i full fart |
Slutsats
PWM är ett huvudverktyg som gör det möjligt för digitala system att styra analoga enheter med noggrannhet och effektivitet. Genom att lära dig arbetscykler, timerinställning, frekvensval, kompromisser med upplösning och avancerade metoder som dödtid eller gammakorrigering kan du konstruera tillförlitliga system. PWM fortsätter att stödja modern elektronik inom belysning, rörelse, ljud och kraftapplikationer.
Vanliga frågor [FAQ]
Förbättrar PWM energieffektiviteten?
Ja. PWM slår PÅ eller AV enheter helt, vilket minimerar värmeförlusten jämfört med analog spänningsstyrning.
Skapar PWM elektromagnetisk störning (EMI)?
Ja. Snabb växling genererar övertoner som orsakar EMI. Mittjusterad PWM minskar det och filter hjälper till att dämpa brus.
Varför använda ett lågpassfilter med PWM?
Ett lågpassfilter jämnar ut fyrkantsvågen till en genomsnittlig likspänning, vilket är användbart för ljud, analoga utgångar och sensorsimulering.
Kan PWM styra värmeelement?
Ja. Värmare reagerar långsamt, så även låga PWM-frekvenser (10–100 Hz) ger stabil temperaturkontroll.
Vad används fasförskjuten PWM till?
Den växlar timing mellan kanaler för att minska strömtoppar och balansera belastningar, vilket är vanligt i flerfasomvandlare och motorstyrningar.
Hur förhindrar mikrokontroller PWM-jitter?
De använder dubbelbuffrade register och synkroniserade uppdateringar så att ändringar i arbetscykeln tillämpas rent i början av varje cykel.