PWM qısaltmasının arxasında nə olduğunu, necə işlədiyini, nə üçün olduğunu və Arduino ilə işləyərkən necə istifadə edə biləcəyimizi müəyyən edək.
Zəruri
- - Arduino;
- - İşıq yayan diod;
- - 200 Ohm müqavimət göstərən bir müqavimət;
- - kompüter.
Təlimat
Addım 1
Arduino rəqəmsal sancaqları yalnız iki dəyər verə bilər: məntiq 0 (LOW) və məntiq 1 (HIGH). Buna görə rəqəmsaldırlar. Ancaq Arduino PWM olaraq təyin olunan "xüsusi" nəticələrə malikdir. Bəzən dalğalı bir "~" xətti ilə işarələnir və ya dairəvi və ya bir şəkildə digərlərindən fərqlənir. PWM "Pulse-width modulation" və ya Pulse Width Modulation, PWM deməkdir.
Nəbz genişliyi modulyasiya olunmuş siqnal sabit tezlikli, lakin dəyişkən vəzifə dövrü olan nəbz siqnaldır (nəbz müddətinin təkrarlanma müddətinə nisbəti). Təbiətdəki fiziki proseslərin əksəriyyətinin ətalətə malik olması səbəbindən kəskin gərginliyin 1-dən 0-a düşməsi ortalama bir dəyər alaraq düzəldiləcəkdir. Vəzifə dövrünü təyin edərək, PWM çıxışındakı orta gərginliyi dəyişdirə bilərsiniz.
Vəzifə dövrü 100% -dirsə, Arduinonun rəqəmsal çıxışında hər zaman "1" və ya 5 voltluq bir məntiqi gərginlik olacaqdır. Vəzifə dövrünü 50% -ə təyin etsəniz, çıxışdakı vaxtın yarısı məntiqi "1", yarısı məntiqi "0" olacaq və orta gərginlik 2,5 volt olacaqdır. Və sair.
Proqramda, vəzifə dövrü faizlə deyil, 0-dan 255-ə qədər bir rəqəm olaraq təyin olunur. Məsələn, "analogWrite (10, 64)" əmri mikrokontrolderə iş dövrü 25 olan bir siqnal göndərməsini söyləyəcəkdir. % 10 rəqəmsal PWM çıxışına.
Nəbz genişliyi modulyasiya funksiyasına malik Arduino sancaqları təxminən 500 Hz tezlikdə işləyir. Bu, nəbz təkrarlama müddətinin şəkildə göstərilən yaşıl şaquli vuruşlarla ölçülən təxminən 2 milisaniyəyə bərabər olduğu deməkdir.
Rəqəmsal çıxışda bir analog siqnal simulyasiya edə biləcəyimiz məlum oldu! Maraqlıdır, hə?
Bunu necə istifadə edə bilərik? Bir çox tətbiq var! Məsələn, bunlar LED parlaqlıq nəzarəti, motor sürət nəzarəti, tranzistor cərəyan nəzarəti, piezo yayıcıdan səs çıxarma …
Addım 2
Ən əsas nümunəyə nəzər salaq - PWM istifadə edərək bir LED-in parlaqlığına nəzarət. Gəlin klassik bir sxem hazırlayaq.
Addım 3
Nümunələrdən "Solma" eskizini açaq: Fayl -> Nümunələr -> 01. Basics -> Solğun.
Addım 4
Gəlin bir az dəyişək və Arduino yaddaşına yükləyək.
Addım 5
Gücü açırıq. LED tədricən parlaqlıqda artır və sonra tədricən azalır. Nəbz genişliyi modulyasiyasından istifadə edərək rəqəmsal çıxışda analog siqnal simulyasiya etdik.