Language Switcher Fallback

Pulsilaiusmodulatsioon (PWM) ja "analoog väljund"

Sisukord

PWM on lühend sõnadest pulse width modulation. See kujutab endast võimsuse reguleerimist toitepinge kiire sisse-välja lülitamise teel. Seda saab kasutada näiteks LEDide heleduse või mootori pöörlemiskiiruse reguleerimiseks. Võimsus sõltub sellest, kui pikk on sisselülitatud oleku aeg võrreldes väljalülitatud ajaga - nn duty cycle. Duty cycle-it tihtipeale määratakse protsentidega - kui suure osa tsükli ajast on olekuks sisselülitatud.

PWMi oskavad genereerida ainult osad Arduino pinid: 3, 5, 6, 9, 10, 11 - neil on UNO peal ka märgistus juures "~". Funktsioon, millega PWMi tehakse on analogWrite(). Tegelikult ei ole tegemist analoog signaaliga, aga kuna PWM teeb keskmiseks pingeks ka väärtusi 0 ja toitepinge vahepeal, siis selle effekt sarnaneb vahepealsete pinge väärtustega. Näiteks duty cycle 50% keskmine on 2,5V ja see on efektilt sarnane 2,5V pingele.

Meeldetuletuseks: Digitaalne tähenab opereerimist kahendsüsteemis: on või off, 1 või 0, toitepinge või null ehk GND. Arduino puhul on toitepinge 5V. Vahepealsete pinge väärtuste eristamine on niinimetatud analoog signaali valdkond.

analogWrite() funktsioon tahab kahte parameetrit: pin, millele kirjutada, ja duty cycle väljendatuna skaalal 0-255.

0 tähendab siis 0% ja 255 tähendab 100% duty cycle. 50% on umbes 128.

Kui PWM signaali andva pini külge on ühendatud transistor, siis see lülitub samuti kiirelt sisse välja ja efekt jõuab koormuseni, mida transistoriga juhitakse.

Veel teadmiseks

  • Kuna LEDid vajavad põlema minekuks kindlat pinget ja alla selle ei juhtu suurt midagi, siis pinget päriselt analoog viisil muutes ei ole ledi põlemine sellega kooskõlas. Ettenähtud pingest allpool heledus tuhmub kiiresti ja nt 1 voldi juures ei põle mitte ükski LED. Aga PWM-ina antud 1 voldi ekvivalent - analogWrite(50) - paneb LEDi ilusti põlema, sest tegelikult töötab see 20% ajast täisheledusega ja 80% ajast on kustutatud, aga inimese silm ei erista 31250 Hz või 62500 Hz sagedusel toimuvat vilkumist. (Eristamise piiriks on vist ca 26Hz)
  • Mootori kiirust PWMiga juhtides tasub arvesse võtta, et väga madalate duty cycle-ite juures mootor ei jõua hõõrdumist ületada ja liikuma hakata. Katseta vajadusel järele konkreetse mootori toimiv miinimum.