PWM kısaltmasının arkasında ne olduğunu, nasıl çalıştığını, ne için olduğunu ve Arduino ile çalışırken nasıl kullanabileceğimizi bulalım.
Gerekli
- -Arduino;
- - Işık yayan diyot;
- - 200 Ohm dirençli bir direnç;
- - bilgisayar.
Talimatlar
Aşama 1
Arduino dijital pinleri sadece iki değer verebilir: mantık 0 (DÜŞÜK) ve mantık 1 (YÜKSEK). Bu yüzden dijitaldirler. Ancak Arduino'nun PWM olarak adlandırılan "özel" sonuçları vardır. Bazen dalgalı bir çizgi "~" ile gösterilirler veya daire içine alınırlar veya bir şekilde diğerlerinden ayırt edilirler. PWM, "Darbeli genişlik modülasyonu" veya Darbe Genişliği Modülasyonu, PWM anlamına gelir.
Darbe genişliği modülasyonlu bir sinyal, sabit bir frekansa, ancak değişken bir görev döngüsüne (darbe süresinin tekrarlama süresine oranı) sahip bir darbe sinyalidir. Doğadaki çoğu fiziksel işlemin bir miktar ataleti olması nedeniyle, 1'den 0'a keskin voltaj düşüşleri, bazı ortalama değerler alarak yumuşatılacaktır. Görev döngüsünü ayarlayarak, PWM çıkışındaki ortalama voltajı değiştirebilirsiniz.
Görev döngüsü %100 ise, Arduino'nun dijital çıkışında her zaman "1" veya 5 voltluk bir mantık voltajı olacaktır. Görev döngüsünü %50'ye ayarlarsanız, çıkıştaki sürenin yarısı mantıksal "1" ve yarı mantıksal "0" olur ve ortalama voltaj 2,5 volt olur. Ve benzeri.
Programda görev döngüsü yüzde olarak değil, 0 ile 255 arasında bir sayı olarak ayarlanmıştır. Örneğin, "analogWrite (10, 64)" komutu mikrodenetleyiciye görev döngüsü 25 olan bir sinyal göndermesini söyleyecektir. % dijital PWM çıkışına # 10.
Darbe genişlik modülasyon fonksiyonlu Arduino pinleri yaklaşık 500 Hz frekansta çalışır. Bu, nabız tekrarlama süresinin, şekildeki yeşil dikey vuruşlarla ölçülen yaklaşık 2 milisaniye olduğu anlamına gelir.
Dijital çıkışta bir analog sinyali simüle edebileceğimiz ortaya çıktı! İlginç, değil mi?
Bunu nasıl kullanabiliriz? Bir sürü uygulama var! Örneğin bunlar LED parlaklık kontrolü, motor hız kontrolü, transistör akım kontrolü, piezo emitörden ses çıkarma…
Adım 2
En temel örneğe bir göz atalım - PWM kullanarak bir LED'in parlaklığını kontrol edelim. Klasik bir şema oluşturalım.
Aşama 3
Örneklerden "Fade" taslağını açalım: File -> Samples -> 01. Basics -> Fade.
4. Adım
Biraz değiştirelim ve Arduino hafızasına yükleyelim.
Adım 5
Gücü açıyoruz. LED'in parlaklığı kademeli olarak artar ve ardından kademeli olarak azalır. Darbe genişlik modülasyonu kullanarak dijital çıkışta bir analog sinyali simüle ettik.