Ang pulse-width modulation (PWM) ay isang magarbong termino para sa isang uri ng digital signal. Ang mga PWM ay ginagamit sa iba't ibang mga aplikasyon, kabilang ang mga kumplikadong control circuit. Ang isang karaniwang paraan na ginagamit namin ang mga ito sa SparkFun ay upang madilim ang isang RGB LED o kontrolin ang direksyon ng isang servo. Makakamit namin ang isang hanay ng mga resulta sa parehong mga application na ito dahil pinapayagan kami ng PWM na pag-iba-ibahin ang dami ng oras na mataas ang signal sa isang analog na paraan. Bagama't ang isang signal ay maaari lamang maging mataas (karaniwan ay 5V) o mababa (lupa) sa anumang partikular na oras, maaari nating pag-iba-ibahin ang proporsyon ng oras na mataas ang signal kumpara sa mababa sa isang pare-parehong agwat ng oras.
Kapag mataas ang signal, tinatawag natin itong “on time.” Upang ilarawan ang dami ng “on time,” ginagamit namin ang konsepto ng duty cycle. Ang cycle ng tungkulin ay sinusukat sa mga porsyento. Partikular na inilalarawan ng porsyento ng duty cycle ang porsyento ng oras na naka-on ang isang digital na signal sa loob ng isang pagitan o panahon. Ang panahon ay ang kabaligtaran ng frequency ng waveform. Kung ang isang digital na signal ay nasa kalahating oras at wala sa kabilang kalahati, sinasabi namin na ang digital signal ay may 50% duty cycle, katulad ng isang perpektong square wave. Kung ang porsyento ay mas mataas sa 50%, ang digital signal ay gumugugol ng mas maraming oras sa mataas na estado kaysa sa mababang estado, at kabaliktaran kung ang duty cycle ay mas mababa sa 50%. Ang sumusunod na diagram ay naglalarawan sa tatlong mga kaso na ito:

Ang 100% duty cycle ay kapareho ng pagtatakda ng boltahe sa 5 volts (mataas). Ang 0% duty cycle ay kapareho ng pagkonekta sa signal sa ground.
halimbawa
Maaari mong kontrolin ang liwanag ng LED sa pamamagitan ng pagsasaayos ng duty cycle.

Sa RGB (pula, berde, at asul) na mga LED, makokontrol mo ang dami ng bawat isa sa tatlong kulay na pinaghalo sa pamamagitan ng pagdidilim sa mga ito ng iba't ibang halaga.

Kung lahat ng tatlo ay naka-on sa pantay na dami, ang resulta ay iba't ibang kulay ng puting liwanag. Ang parehong paghahalo ng asul at berde ay lilikha ng isang mala-bughaw-berdeng kulay. Para sa isang bahagyang mas kumplikadong halimbawa, subukang i-on ang pula nang ganap, ganap na berde sa 50% duty cycle, at ganap na i-off ang asul upang lumikha ng isang kulay kahel.

Kapag kinokontrol ang mga LED, ang dalas ng square wave ay kailangang sapat na mataas upang makamit ang tamang dimming effect. Ang 20% duty cycle wave sa 1 Hz ay malinaw na magpapakita na ito ay naka-on at naka-off sa iyong mata, habang ang isang 100% na duty cycle sa 20 Hz o mas mataas ay lalabas na dimmer kaysa kapag ganap na naka-on. Sa pangkalahatan, kung ang iyong layunin ay makamit ang isang dimming effect sa mga LED, ang panahon ay hindi maaaring masyadong malaki. Maaari mo ring gamitin ang pulse-width modulation upang kontrolin ang anggulo ng isang servo motor na konektado sa isang mekanikal na aparato tulad ng isang robotic arm. Ang isang servo ay may baras na lumiliko sa isang tiyak na posisyon batay sa linya ng kontrol nito. Ang aming mga servo motor ay may hanay na humigit-kumulang 180 degrees.
Ang dalas/panahon ay tiyak sa pagkontrol sa isang partikular na servo. Ang isang tipikal na servo motor ay umaasa ng isang update tuwing 20 ms, na may pulso sa pagitan ng 1 ms at 2 ms—sa madaling salita, isang duty cycle sa pagitan ng 5% at 10% sa isang 50 Hz waveform. Sa 1.5 ms pulse, ang servo motor ay nasa natural nitong 90-degree na posisyon. Sa 1ms pulse, ang servo ay nasa 0 degrees, at sa 2ms pulse, ang servo ay nasa 180 degrees. Makukuha mo ang buong saklaw ng paggalaw sa pamamagitan ng pag-update ng servo sa mga halaga sa pagitan.
Ginagamit ang pulse-width modulation sa iba't ibang mga aplikasyon, lalo na ang kontrol. Ngayong alam mo na na magagamit mo ito para i-dim ang mga LED at kontrolin ang anggulo ng mga servo motor, maaari mong simulan ang paggalugad ng iba pang posibleng gamit. Kung naliligaw ka, huwag mag-atubiling tingnan ang SparkFun Inventor's Kit, na kinabibilangan ng mga halimbawa gamit ang pulse-width modulation. Kung handa ka nang magsimulang mag-coding kaagad at magkaroon ng Arduino, tingnan ang mga halimbawa ng PWM coding dito.
Oras ng post: Hul-31-2025


