Mõelgem välja, mis on PWM-i akronüümi taga, kuidas see töötab, milleks see on mõeldud ja kuidas saame seda kasutada Arduinoga töötamisel.
Vajalik
- - Arduino;
- - Valgusdiood;
- - takisti takistusega 200 Ohm;
- - arvuti.
Juhised
Samm 1
Arduino digitaalsed tihvtid võivad anda ainult kaks väärtust: loogika 0 (LOW) ja loogika 1 (HIGH). Sellepärast on nad digitaalsed. Kuid Arduinol on "erilised" järeldused, mis on tähistatud PWM-iga. Mõnikord tähistatakse neid lainelise joonega "~" või ringitakse ringi või eristatakse neid kuidagi teistest. PWM tähistab pulsilaiuse modulatsiooni või pulsilaiuse modulatsiooni (PWM).
Impulsi laiusega moduleeritud signaal on püsiva sagedusega, kuid muutuva töötsükliga (impulsi kestuse ja kordusperioodi suhe) impulsi signaal. Tulenevalt asjaolust, et enamikul looduse füüsikalistel protsessidel on teatav inertsus, tasandatakse järsud pingelangused vahemikus 1 kuni 0, võttes selle keskmise väärtuse. Töötsükli määramisega saate muuta PWM-väljundi keskmist pinget.
Kui töötsükkel on 100%, siis Arduino digitaalväljundis on kogu aeg loogiline pinge "1" või 5 volti. Kui määrate töötsükli 50% -le, on pool ajast väljundis loogiline "1" ja pool-loogiline "0" ning keskmine pinge on 2,5 volti. Ja nii edasi.
Programmis ei ole töötsükkel määratud protsentidena, vaid arvuna vahemikus 0 kuni 255. Näiteks käsk "analogWrite (10, 64)" käsib mikrokontrolleril saata signaali töötsükliga 25 % digitaalsele PWM-väljundile # 10.
Pulsilaiuse modulatsiooni funktsiooniga Arduino tihvtid töötavad umbes 500 Hz sagedusel. See tähendab, et impulsi kordumise periood on umbes 2 millisekundit, mida mõõdetakse joonisel toodud roheliste vertikaalsete löökidega.
Tuleb välja, et saame digitaalses väljundis simuleerida analoogsignaali! Huvitav, eks?
Kuidas me saame seda kasutada? Rakendusi on palju! Näiteks on need LED-heleduse reguleerimine, mootori kiiruse reguleerimine, transistori voolu juhtimine, heli väljavõtmine pieso-emitterist …
2. samm
Vaatame kõige elementaarsemat näidet - LED-i heleduse reguleerimine PWM-i abil. Paneme kokku klassikalise skeemi.
3. samm
Avame "Fade" visandi näidetest: File -> Samples -> 01. Basics -> Fade.
4. samm
Muudame seda natuke ja laadime selle Arduino mällu.
5. samm
Lülitame toite sisse. LEDi heledus suureneb järk-järgult ja seejärel järk-järgult väheneb. Oleme simuleerinud analoogsignaali digitaalväljundis, kasutades impulsi laiuse modulatsiooni.