PWM Sinyalleri Anlamak: Teori ve Arduino Uygulaması
PWM (Pulse Width Modulation), dijital bir pin üzerinden analog gibi kontrol sağlayan bir tekniktir. Pinin hızla açılıp kapanmasıyla (on-off), ortalama voltajı değiştirirsin. LED'in parlaklığından motor hızına kadar pek çok uygulamada kullanılır.
PWM'de iki önemli kavram vardır:
Frekans (Frequency): Pinin kaç kez açılıp kapandığı (Hz cinsinden). Arduino'da genellikle 490 Hz veya 980 Hz'dir.
Duty Cycle (Görev Oranı): Pinin açık olduğu sürenin, toplam periyoda oranı. 0-255 arasında (0-100%) gösterilir.
Formül:
1Ortalama Voltaj = (Duty Cycle / 255) × 5VÖrneğin duty cycle 128 ise: (128/255) × 5V ≈ 2.5V çıkışı elde edersin.
Arduino Uno'da PWM destekleyen pinler: 3, 5, 6, 9, 10, 11 (tilde ~ işareti ile işaretlenmiş).
1int ledPin = 9; // PWM destekleyen pin2int brightness = 0;34void setup() {5pinMode(ledPin, OUTPUT);6}78void loop() {9// Parlaklığı 0'dan 255'e artır10for (brightness = 0; brightness <= 255; brightness++) {11analogWrite(ledPin, brightness);12delay(10);13}1415// Parlaklığı 255'ten 0'a azalt16for (brightness = 255; brightness >= 0; brightness--) {17analogWrite(ledPin, brightness);18delay(10);19}20}Beklenen Çıktı: LED yumuşak bir şekilde parlanıp söner, hiçbir titreme yoktur.
1. LED'in pozitif bacağını pin 9'a, negatif bacağını GND'ye bağla (dirençle korumalı).
2. Kodu yükle.
3. LED'i gözlemle, parlaklık kademesiz geçiş yapacak.
`analogWrite()` fonksiyonu PWM'yi kontrol eder. 0 tamamen kapalı, 255 tamamen açık anlamına gelir.
Motor kontrol, LED dimming veya buzzer ses ayarında PWM kullanılır. Frekans arttıkça daha pürüzsüz kontrol elde edersin, ancak güç tüketimi artar. Başlangıçta varsayılan frekans yeterlidir.
0 yorum