Pulsbreddemodulation (PWM) er et smart udtryk for en type digitalt signal. PWM'er bruges i en række forskellige applikationer, herunder komplekse styrekredsløb. En almindelig måde, vi bruger dem på hos SparkFun, er til at dæmpe en RGB LED eller styre retningen af en servo. Vi kan opnå en række resultater i begge disse applikationer, fordi PWM giver os mulighed for at variere den tid, et signal er højt på en analog måde. Mens et signal kun kan være højt (normalt 5V) eller lavt (jord) på et givet tidspunkt, kan vi variere den andel af tiden, signalet er højt sammenlignet med lavt over et ensartet tidsinterval.
Når et signal er højt, kalder vi det "on-time". For at beskrive mængden af "on-time" bruger vi konceptet duty cycle. Duty cycle måles i procenter. Duty cycle-procenten beskriver specifikt den procentdel af tiden, et digitalt signal er tændt inden for et interval eller en periode. Perioden er den inverse af bølgeformens frekvens. Hvis et digitalt signal er tændt halvdelen af tiden og slukket den anden halvdel, siger vi, at det digitale signal har en duty cycle på 50%, svarende til en ideel firkantbølge. Hvis procentdelen er højere end 50%, bruger det digitale signal mere tid i den høje tilstand end i den lave tilstand, og omvendt, hvis duty cycle er mindre end 50%. Følgende diagram illustrerer disse tre tilfælde:

En duty cycle på 100 % er det samme som at indstille spændingen til 5 volt (høj). En duty cycle på 0 % er det samme som at forbinde signalet til jord.
eksempel
Du kan styre LED-lysstyrken ved at justere duty cycle-funktionen.

Med RGB (rød, grøn og blå) LED'er kan du styre mængden af hver af de tre farver, der blandes, ved at dæmpe dem med forskellige mængder.

Hvis alle tre tændes i lige store mængder, vil resultatet være varierende nuancer af hvidt lys. Den samme blanding af blåt og grønt vil skabe en blågrøn farve. For et lidt mere komplekst eksempel kan du prøve at tænde rødt helt, grønt helt ved 50 % duty cycle og blåt helt slukket for at skabe en orange farve.

Når man styrer LED'er, skal firkantbølgens frekvens være høj nok til at opnå en korrekt dæmpningseffekt. En duty cycle-bølge på 20 % ved 1 Hz vil tydeligt vise, at den tænder og slukker, mens en duty cycle på 100 % ved 20 Hz eller højere vil virke svagere, end når den er fuldt tændt. Hvis dit mål er at opnå en dæmpningseffekt med LED'er, må perioden i bund og grund ikke være for lang. Du kan også bruge pulsbreddemodulation til at styre vinklen på en servomotor, der er forbundet til en mekanisk enhed som en robotarm. En servo har en aksel, der drejer til en bestemt position baseret på dens styrelinje. Vores servomotorer har et område på cirka 180 grader.
Frekvensen/perioden er specifik for styringen af en bestemt servo. En typisk servomotor forventer en opdatering hver 20 ms, med en puls mellem 1 ms og 2 ms – med andre ord en duty cycle mellem 5 % og 10 % på en 50 Hz bølgeform. Med en puls på 1,5 ms vil servomotoren være i sin naturlige 90-graders position. Ved en puls på 1 ms vil servoen være ved 0 grader, og ved en puls på 2 ms vil servoen være ved 180 grader. Du kan få det fulde bevægelsesområde ved at opdatere servoen til værdier derimellem.
Pulsbreddemodulation bruges i en række forskellige applikationer, især inden for styring. Nu hvor du ved, at det kan bruges til at dæmpe LED'er og styre vinklen på servomotorer, kan du begynde at udforske andre mulige anvendelser. Hvis du føler dig fortabt, er du velkommen til at tjekke SparkFun Inventor's Kit, som indeholder eksempler på brug af pulsbreddemodulation. Hvis du er klar til at begynde at kode med det samme og har en Arduino, kan du tjekke PWM-kodningseksemplerne her.
Opslagstidspunkt: 31. juli 2025


