Az impulzusszélesség-moduláció (PWM) egy divatos kifejezés egy digitális jeltípusra. A PWM-eket számos alkalmazásban használják, beleértve az összetett vezérlőáramköröket is. A SparkFunnál egy gyakori használati mód az RGB LED fényerejének szabályozása vagy egy szervo irányának vezérlése. Mindkét alkalmazásban változatos eredményeket érhetünk el, mivel a PWM lehetővé teszi számunkra, hogy analóg módon változtassuk a jel magas szintjének időtartamát. Míg egy jel egy adott időpontban csak magas (általában 5 V) vagy alacsony (föld) lehet, egy konzisztens időintervallumon belül változtathatjuk a jel magas és alacsony szintjének időtartamát.
Amikor egy jel magas, azt „bekapcsolt állapotban”-nak nevezzük. A „bekapcsolt állapotban” időtartamának leírására a kitöltési tényező fogalmát használjuk. A kitöltési tényezőt százalékban mérjük. A kitöltési tényező százalékos aránya konkrétan azt írja le, hogy egy digitális jel egy intervallumon vagy perióduson belül mennyi ideig van bekapcsolva. A periódusidő a hullámforma frekvenciájának reciproka. Ha egy digitális jel az idő felében bekapcsolt, a másik felében pedig kikapcsolt állapotban van, akkor azt mondjuk, hogy a digitális jel kitöltési tényezője 50%, hasonlóan egy ideális négyszögjelhez. Ha a százalékos érték magasabb, mint 50%, a digitális jel több időt tölt magas állapotban, mint alacsony állapotban, és fordítva, ha a kitöltési tényező kisebb, mint 50%. A következő ábra ezt a három esetet szemlélteti:

A 100%-os kitöltési tényező ugyanaz, mint a feszültség 5 voltra (magas) állítása. A 0%-os kitöltési tényező ugyanaz, mint a jel földre kötése.
példa
A LED fényerejét a kitöltési tényező beállításával szabályozhatja.

Az RGB (piros, zöld és kék) LED-ek esetében a három szín keverésének mértékét szabályozhatod a különböző mértékű fényerőszabályozással.

Ha mindhármat egyenlő mennyiségben bekapcsoljuk, az eredmény a fehér fény különböző árnyalatai lesznek. A kék és a zöld azonos keverése kékeszöld színt hoz létre. Egy kicsit bonyolultabb példaként próbáljuk meg a pirosat teljesen bekapcsolni, a zöldet 50%-os kitöltési tényezővel teljesen bekapcsolni, a kéket pedig teljesen kikapcsolni, hogy narancssárga színt hozzunk létre.

LED-ek vezérlésekor a négyszöghullám frekvenciájának elég magasnak kell lennie a megfelelő fényerő-szabályozó hatás eléréséhez. Egy 20%-os kitöltési tényezőjű hullám 1 Hz-en tisztán mutatja a be- és kikapcsolását a szemünk számára, míg egy 100%-os kitöltési tényező 20 Hz-en vagy magasabban halványabbnak tűnik, mint teljesen bekapcsolt állapotban. Lényegében, ha a cél a LED-ekkel való fényerő-szabályozó hatás elérése, a periódusidő nem lehet túl nagy. Az impulzusszélesség-modulációval is szabályozhatjuk egy mechanikus eszközhöz, például egy robotkarhoz csatlakoztatott szervomotor szögét. A szervomotornak van egy tengelye, amely a vezérlővezetéke alapján egy adott helyzetbe fordul. Szervomotorjaink körülbelül 180 fokos tartományban mozognak.
A frekvencia/periódus egy adott szervomotor vezérlésére jellemző. Egy tipikus szervomotor 20 ms-ként frissítést vár, 1 ms és 2 ms közötti impulzussal – más szóval, a kitöltési tényező 5% és 10% között van egy 50 Hz-es hullámformán. 1,5 ms-os impulzusnál a szervomotor a természetes 90 fokos helyzetében lesz. 1 ms-os impulzusnál a szervo 0 fokon, 2 ms-os impulzusnál pedig 180 fokon lesz. A teljes mozgástartományt a szervo köztes értékekre való frissítésével érheti el.
Az impulzusszélesség-modulációt számos alkalmazásban használják, különösen a vezérlésben. Most, hogy tudod, hogy LED-ek fényerejének szabályozására és szervomotorok szögének szabályozására is használható, elkezdhetsz más lehetséges felhasználási módokat is felfedezni. Ha elveszettnek érzed magad, nézd meg a SparkFun Inventor's Kitet, amely impulzusszélesség-modulációt használó példákat tartalmaz. Ha készen állsz a kódolás azonnali elkezdésére, és van egy Arduinód, nézd meg a PWM kódolási példákat itt.
Közzététel ideje: 2025. július 31.


