Alamin natin kung ano ang nasa likod ng akronim ng PWM, kung paano ito gumagana, para saan ito at kung paano natin ito magagamit sa pagtatrabaho sa Arduino.
Kailangan
- - Arduino;
- - Light-emitting diode;
- - isang risistor na may paglaban ng 200 Ohm;
- - computer.
Panuto
Hakbang 1
Ang mga digital na pin ng Arduino ay maaari lamang magbigay ng dalawang halaga: lohika 0 (LOW) at lohika 1 (TAAS). Iyon ang dahilan kung bakit sila digital. Ngunit ang Arduino ay may "espesyal" na konklusyon, na kung saan ay itinalaga PWM. Minsan sila ay tinukoy ng isang kulot na linya na "~" o bilugan o sa anumang paraan makilala mula sa iba. Ang PWM ay nangangahulugang "Pulse-width modulation" o Pulse Width Modulation, PWM.
Ang isang lapad na pulso na naka-modulate signal ay isang signal ng pulso ng isang pare-pareho na dalas, ngunit isang variable na cycle ng tungkulin (ang ratio ng tagal ng pulso sa panahon ng pag-uulit). Dahil sa ang katunayan na ang karamihan sa mga pisikal na proseso sa likas na katangian ay may ilang pagkawalang-galaw, matalim boltahe patak mula 1 hanggang 0 ay makinis, pagkuha ng ilang average na halaga. Sa pamamagitan ng pagtatakda ng cycle ng tungkulin, maaari mong baguhin ang average boltahe sa output ng PWM.
Kung ang cycle ng tungkulin ay 100%, pagkatapos ay sa lahat ng oras sa digital output ng Arduino magkakaroon ng isang boltahe ng lohika na "1" o 5 volts. Kung itinakda mo ang duty cycle sa 50%, pagkatapos ang kalahati ng oras sa output ay magiging lohikal na "1", at kalahati - lohikal na "0", at ang average na boltahe ay magiging 2.5 volts. At iba pa.
Sa programa, ang ikot ng tungkulin ay itinakda hindi bilang isang porsyento, ngunit bilang isang numero mula 0 hanggang 255. Halimbawa, sasabihin sa utos na analogWrite (10, 64) ang microcontroller na magpadala ng isang senyas na may isang cycle ng tungkulin na 25 % sa digital PWM output # 10.
Ang mga pin ng Arduino na may pagpapaandar ng lapad ng pulso ay nagpapatakbo sa dalas ng halos 500 Hz. Nangangahulugan ito na ang tagal ng pag-ulit ng pulso ay tungkol sa 2 milliseconds, na sinusukat ng berdeng patayong mga stroke sa pigura.
Ito ay naka-out na maaari naming gayahin ang isang analog signal sa digital output! Nakakatuwa diba?!
Paano natin ito magagamit? Maraming mga application! Halimbawa, ang mga ito ay kontrol ng ilaw ng LED, kontrol sa bilis ng motor, kontrol ng kasalukuyang transistor, pagkuha ng tunog mula sa isang piezo emitter …
Hakbang 2
Tingnan natin ang pinaka-pangunahing halimbawa - pagkontrol sa liwanag ng isang LED gamit ang PWM. Magkasama tayo ng isang klasikong pamamaraan.
Hakbang 3
Buksan natin ang sketch na "Fade" mula sa mga halimbawa: File -> Mga Sample -> 01. Mga Pangunahing Kaalaman -> Fade.
Hakbang 4
Baguhin natin ito nang kaunti at i-load ito sa memorya ng Arduino.
Hakbang 5
Binuksan namin ang lakas. Ang LED ay unti-unting tumataas sa liwanag at pagkatapos ay unti-unting bumababa. Nag-simulate kami ng isang analog signal sa digital output gamit ang modulate ng pulse width.