Keling, PWM qisqartmasining orqasida nima borligini, qanday ishlashini, nima uchun kerakligini va Arduino bilan ishlashda qanday foydalanishimiz mumkinligini aniqlaylik.
Kerakli
- - Arduino;
- - yorug'lik chiqaradigan diod;
- - qarshilik 200 Ohm bo'lgan qarshilik;
- - kompyuter.
Ko'rsatmalar
1-qadam
Arduino raqamli pinlari faqat ikkita qiymatni berishi mumkin: mantiq 0 (LOW) va mantiqiy 1 (HIGH). Shuning uchun ular raqamli. Ammo Arduino PWM deb nomlangan "maxsus" xulosalarga ega. Ular ba'zan to'lqinli chiziq bilan belgilanadi "~" yoki aylana shaklida yoki boshqalar bilan ajralib turadi. PWM "Puls kengligi modulyatsiyasi" yoki Puls kengligi modulyatsiyasi, PWM degan ma'noni anglatadi.
Impuls kengligi modulyatsiyalangan signal - bu doimiy chastotali impuls signalidir, ammo o'zgaruvchan ish tsikli (impuls davomiyligining uning takrorlanish davriga nisbati). Tabiatdagi aksariyat jismoniy jarayonlar inertsiyaga ega bo'lganligi sababli, keskin kuchlanishning 1dan 0 gacha pasayishi, o'rtacha qiymatga ega bo'lib, tekislanadi. Ish tsiklini o'rnatib, siz PWM chiqishidagi o'rtacha kuchlanishni o'zgartirishingiz mumkin.
Agar ish aylanishi 100% bo'lsa, u holda Arduinoning raqamli chiqishida doimo "1" yoki 5 voltsli mantiqiy kuchlanish bo'ladi. Agar siz ishchi tsiklni 50% ga o'rnatgan bo'lsangiz, unda chiqadigan vaqtning yarmi mantiqiy "1", yarmi mantiqiy "0" bo'ladi va o'rtacha voltaj 2,5 volt bo'ladi. Va hokazo.
Dasturda ish tsikli foiz sifatida emas, balki 0 dan 255 gacha bo'lgan raqam sifatida o'rnatiladi. Masalan, "analogWrite (10, 64)" buyrug'i mikrokontrollerga ish tsikli 25 ga teng signal yuborishini aytadi. № 10 raqamli PWM chiqishiga%.
Impuls kengligi modulyatsiyasi funktsiyasiga ega Arduino pinlari taxminan 500 Gts chastotada ishlaydi. Bu shuni anglatadiki, pulsning takrorlanish davri taxminan 2 millisekundni tashkil etadi, bu rasmdagi yashil vertikal zarbalar bilan o'lchanadi.
Raqamli chiqishda analog signalni simulyatsiya qilishimiz mumkin ekan! Qiziq, to'g'rimi?!
Buni qanday ishlatishimiz mumkin? Arizalar juda ko'p! Masalan, bu LED yorqinligini boshqarish, dvigatel tezligini boshqarish, tranzistor oqimini boshqarish, piezo emitentdan ovoz chiqarib olish …
2-qadam
Keling, eng asosiy misolni ko'rib chiqamiz - PWM yordamida LED yorug'ligini boshqarish. Keling, klassik sxemani yig'amiz.
3-qadam
Keling, "Solish" eskizini misollardan ochamiz: Fayl -> Namunalar -> 01. Asoslar -> Fade.
4-qadam
Keling, uni biroz o'zgartirib, Arduino xotirasiga yuklaylik.
5-qadam
Biz quvvatni yoqamiz. LED yorug'likda asta-sekin o'sib boradi va keyin asta-sekin kamayadi. Biz impuls kengligi modulyatsiyasi yordamida raqamli chiqishda analog signalni simulyatsiya qildik.