Pulsbreedtemodulatie: inschakelduur, timers en toepassingen

кас 21 2025
Bron: DiGi-Electronics
Bladeren: 1171

Pulsbreedtemodulatie (PWM) is een methode die microcontrollers gebruiken om het vermogen te regelen door signalen met hoge snelheid aan en uit te schakelen. Het wordt gebruikt in LED's, motoren, servo's, audio en voedingssystemen. In dit artikel worden de basisprincipes van PWM, inschakelduur, timerwerking, modi, frequentie, resolutie en geavanceerde technieken in duidelijk detail uitgelegd.

Figure 1: Pulse-width Modulation

Overzicht pulsbreedtemodulatie (PWM) 

PWM-timers zijn ingebouwde hardwaremodules in microcontrollers die digitale pulssignalen genereren met instelbare inschakelduur. In plaats van te vertrouwen op software om pinnen te wisselen, wat verwerkingskracht verbruikt en timing-jitter riskeert, verplaatst de microcontroller deze taak naar de hardwaretimer. Hierdoor kan het de nauwkeurigheid behouden terwijl de CPU wordt vrijgemaakt om andere taken uit te voeren. Het resultaat is efficiënte multitasking, verminderde latentie en betere prestaties in daadwerkelijke toepassingen zoals motorbesturing, LED-dimming, audiomodulatie en signaalgeneratie. De efficiëntie en precisie van PWM maken het tot de ruggengraat van moderne embedded systemen en overbruggen de kloof tussen digitale besturing en analoog gedrag. 

Inschakelduur van pulsbreedtemodulatie

Figure 2: Pulse-width Modulation Duty Cycle

De golfvorm laat een herhalend signaal zien dat schakelt tussen 0V en 5V. De periode is gemarkeerd als 10 ms, wat de tijd voor een volledige cyclus vertegenwoordigt. Binnen die periode blijft het signaal hoog (5V) gedurende 3 ms, de zogenaamde pulsbreedte. De inschakelduur wordt vervolgens berekend als de verhouding tussen de hoge tijd en de totale periode, in dit geval 30%. Dit betekent dat het signaal slechts 30% van de tijd per cyclus stroom levert. De frequentie is ook afgeleid van de periode, berekend als 1 ÷ 10 ms = 100 Hz.

Berekening van de inschakelduur in microcontrollertimers

De duty cycle vertelt ons hoeveel van de totale tijd dat een signaal wordt ingeschakeld in vergelijking met de volledige cyclus van de golfvorm. In een microcontroller is dit belangrijk omdat deze beslist hoeveel stroom er tijdens elke cyclus naar een apparaat wordt gestuurd.

Om het te berekenen, gebruikt u een eenvoudige formule: Inschakelduur (%) = (pulsbreedte ÷ periode) × 100. Als het signaal actief is op HOOG, is de inschakelduur de fractie van de tijd dat het signaal HOOG blijft. Als het signaal LAAG actief is, is de inschakelduur de fractie van de tijd dat het LAAG blijft.

Puls-breedte modulatie timer 

Figure 3: Pulse-width Modulation Timer

Deze afbeelding laat zien hoe een PWM-timer werkt door de spanningsuitgang te koppelen aan een teller. De teller telt herhaaldelijk van 0 tot 9 en wordt vervolgens gereset, waardoor de periode van het signaal ontstaat. Wanneer de teller een ingestelde matchwaarde bereikt (hier 2), gaat de output hoog en blijft hoog totdat de teller overloopt, waardoor de pulsbreedte wordt gedefinieerd. Het overlooppunt reset de cyclus en start een nieuwe periode.

De timer bepaalt de inschakelduur door te regelen wanneer de uitgang wordt ingeschakeld (match) en wanneer deze wordt gereset (overloop). Door de match-waarde aan te passen, verandert de breedte van het hoge signaal, waardoor direct wordt bepaald hoeveel vermogen de PWM aan een belasting levert.

Rand- en middenuitgelijnde PWM-modi

Rand-uitgelijnde modus

Figure 4: Edge-Aligned Mode

Bij randuitgelijnde PWM telt de teller alleen op van nul tot een ingesteld maximum, en schakelt u aan het begin of einde van de cyclus. Dit maakt het eenvoudig te implementeren en zeer efficiënt, aangezien de meeste microcontrollers en timers het native ondersteunen. Omdat alle schakelranden zijn uitgelijnd met één kant van de periode, kan dit leiden tot ongelijkmatige stroomrimpel en hogere elektromagnetische interferentie (EMI).

Gecentreerde (fasecorrecte) modus

Figure 5: Center-Aligned (Phase-Correct) Mode

Bij in het midden uitgelijnde PWM telt de teller binnen elke cyclus op en weer omlaag. Dit zorgt ervoor dat schakelranden rond het midden van de golfvorm worden verdeeld, waardoor een meer gebalanceerde output ontstaat. De symmetrie vermindert harmonischen, koppelrimpel in motoren en EMI in aandrijfsystemen. Hoewel het iets complexer en minder efficiënt is in termen van frequentiegebruik, biedt het een veel schonere uitvoerkwaliteit.

De juiste PWM-frequentie selecteren

• LED-dimmen vereist frequenties boven 200 Hz om zichtbare flikkering te elimineren, terwijl achtergrondverlichting van schermen en hoogwaardige verlichtingssystemen vaak 20-40 kHz gebruiken om buiten de menselijke waarneming te blijven en ruis te minimaliseren.

• Elektromotoren werken het beste met PWM-frequenties tussen 2-20 kHz, waarbij schakelverliezen worden gecompenseerd met een soepel koppel; Lagere waarden zorgen voor een hogere resolutie van de inschakelduur, terwijl hogere waarden hoorbare ruis en rimpeling verminderen.

• Standaard hobbyservo's vertrouwen op vaste stuursignalen rond 50 Hz (periode van 20 ms), waarbij de pulsbreedte, niet de frequentie, de hoekpositie bepaalt.

• Voor het genereren van audio en de conversie van digitaal naar analoog is een PWM nodig die ruim boven het hoorbare spectrum ligt, meer dan 22 kHz, om interferentie te voorkomen en een zuivere filtering van signalen mogelijk te maken.

• Bij vermogenselektronica wordt bij de frequentiekeuze vaak een afweging gemaakt tussen efficiëntie, schakelverliezen, elektromagnetische interferentie en de dynamische respons van de specifieke belasting.

PWM-resolutie en stapgrootte

Resolutie (stappen)

Het aantal afzonderlijke inschakelduurniveaus wordt bepaald door het aantal perioden van de timer (N). Als een teller bijvoorbeeld loopt van 0 tot 1023, geeft dat 1024 verschillende stappen voor de inschakelduur. Hogere tellingen betekenen een fijnere controle van de output.

Bit-diepte

Resolutie wordt vaak uitgedrukt in bits, berekend als log₂(N). Een teller van 1024 stappen komt overeen met een resolutie van 10 bits, terwijl een teller van 65536 overeenkomt met een resolutie van 16 bits. Dit bepaalt hoe nauwkeurig de inschakelduur kan worden aangepast.

Tijdstap

De systeemklok bepaalt de kleinste stap, gelijk aan 1 ÷ fClock. Hogere kloksnelheden maken kortere perioden en hogere PWM-frequenties mogelijk, terwijl de resolutie toch goed blijft.

Compromissen

Het verhogen van de resolutie vereist meer timertellingen, wat op zijn beurt de maximale PWM-frequentie voor een bepaalde klok verlaagt. Omgekeerd verminderen hogere frequenties de beschikbare resolutie. 

Voorbeeld van PWM-prescaler en periode-instelling

StapBerekeningResultaatToelichting
MCU-klok-24 MHzBasisfrequentie stuurt de timer aan.
Prescaler ÷824 MHz ÷ 83 MHzDe timerklok is teruggebracht tot een beheersbaar telbereik.
Tijdsduur3 MHz × 0,020 s60.000 tellingenAls u het auto-reload/perioderegister instelt op 60.000, krijgt u een frame van 20 ms.
Resolutie per vinkje1 ÷ 3 MHz0,333 μsElke timerstap is gelijk aan\~0,33 microseconden.
Servo puls regeling1-2 ms pulsbreedte = 3000-6000 tikkenZorgt voor een soepele hoekcontrole binnen het frame van 20 ms.-

Geavanceerde PWM-kanaaltechnieken

Invoegen in dode tijd

Dode tijd is een kleine, gecontroleerde vertraging die wordt ingevoegd tussen het schakelen van complementaire transistors in een halfbrug- of volledige-brugcircuit. Zonder dit zouden zowel de high-side als de low-side apparaten tijdelijk tegelijkertijd kunnen geleiden, waardoor een kortsluiting ontstaat die bekend staat als shoot-through. Door enkele tientallen of honderden nanoseconden dode tijd toe te voegen, zorgt de hardware voor veilige overgangen en worden MOSFET's of IGBT's beschermd tegen schade.

Complementaire resultaten

Complementaire outputs genereren twee signalen die logische tegenpolen van elkaar zijn. Dit is vooral handig in push-pull-circuits, motordrivers en invertertrappen, waarbij de ene transistor precies moet worden uitgeschakeld wanneer de andere wordt ingeschakeld. Het gebruik van complementaire PWM-paren vereenvoudigt de drivercircuits en zorgt voor symmetrie, waardoor de efficiëntie wordt verbeterd en vervorming wordt verminderd.

Synchrone updates

In systemen met meerdere PWM-kanalen zorgen synchrone updates ervoor dat alle uitgangen tegelijkertijd worden vernieuwd. Zonder deze functie kunnen kleine timingmismatches (scheefheid) optreden, wat leidt tot een ongelijkmatige werking. In driefasige motoraandrijvingen of meerfasige converters zorgt gesynchroniseerde PWM voor balans, soepele prestaties en verminderde elektromagnetische interferentie.

Kruis-triggeren

Cross-triggering zorgt ervoor dat timers met elkaar kunnen communiceren, zodat een PWM-gebeurtenis een andere timer kan starten, resetten of aanpassen. Deze functie is krachtig in geavanceerde besturingssystemen, waardoor nauwkeurige coördinatie van meerdere signalen mogelijk is. Toepassingen zijn onder meer gecascadeerde motoraandrijvingen, interleaved stroomomvormers en gesynchroniseerde sensorbemonstering, waarbij timingrelaties tussen kanalen van cruciaal belang zijn.

Servobeweging met PWM-signalen

Pulse BreedteServo Beweging
\~1,0 msDraait volledig naar links of draait met de klok mee op volle snelheid
\~1,5 msBlijft in het midden of stopt met bewegen
\~2.0 msDraait volledig naar rechts of draait tegen de klok in op volle snelheid

Conclusie

PWM is een belangrijk hulpmiddel waarmee digitale systemen analoge apparaten met nauwkeurigheid en efficiëntie kunnen besturen. Door inschakelcycli, timerinstellingen, frequentiekeuzes, resolutiecompromissen en geavanceerde methoden zoals dode tijd of gammacorrectie te leren, kunt u betrouwbare systemen ontwerpen. PWM blijft moderne elektronica ondersteunen in verlichtings-, bewegings-, audio- en stroomtoepassingen.

Veelgestelde vragen [FAQ]

Verbetert PWM de energie-efficiëntie?

Ja. PWM schakelt apparaten volledig AAN of UIT, waardoor warmteverlies wordt geminimaliseerd in vergelijking met analoge spanningsregeling.

Veroorzaakt PWM elektromagnetische interferentie (EMI)?

Ja. Snel schakelen genereert harmonischen die EMI veroorzaken. In het midden uitgelijnde PWM vermindert het en filters helpen ruis te onderdrukken.

Waarom een laagdoorlaatfilter gebruiken met PWM?

Een laagdoorlaatfilter verzacht de blokgolf tot een gemiddelde gelijkspanning, handig voor audio, analoge uitgangen en sensorsimulatie.

Kan PWM verwarmingselementen aansturen?

Ja. Kachels reageren traag, dus zelfs lage PWM-frequenties (10-100 Hz) zorgen voor een stabiele temperatuurregeling.

Waar wordt faseverschovende PWM voor gebruikt?

Het verschuift de timing tussen kanalen om stroompieken en balansbelastingen te verminderen, wat gebruikelijk is bij meerfasige converters en motoraandrijvingen.

Hoe voorkomen microcontrollers PWM-jitter?

Ze maken gebruik van dubbel gebufferde registers en gesynchroniseerde updates, zodat wijzigingen in de taakcyclus aan het begin van elke cyclus netjes worden toegepast.