Elektronik ve mikrodenetleyici (Arduino, Raspberry Pi, STM32 vb.) projelerinde dijital pinlerle çalışırken en çok karşılaşılan sorunlardan biri "ara değerleri" ayarlayamamaktır. Dijital dünya sadece 0 (0V) ve 1 (5V/3.3V) mantığıyla çalışır; yani bir LED ya tamamen söner ya da tam parlaklıkta yanar. Peki, bir LED'in parlaklığını yarıya indirmek veya bir DC motorun hızını %50'ye düşürmek istersek bunu dijital sinyallerle nasıl yapabiliriz?
İşte bu noktada imdadımıza analog görünümlü dijital sinyaller üretmemizi sağlayan büyüleyici bir teknik yetişiyor: PWM (Pulse Width Modulation - Sinyal Genişlik Modülasyonu).
Gelin, yenidir.com takipçileri için PWM teknolojisinin ne olduğunu, nasıl çalıştığını ve devrelerimizde ne işe yaradığını en pratik benzetmelerle inceleyelim.
Teknik tanımıyla PWM; dijital çıkışlardan analog sonuçlar elde etmek için kullanılan, sinyalin açık kalma (1) ve kapalı kalma (0) sürelerinin oranını değiştirerek voltajın ortalama değerini kontrol etme tekniğidir.
Gözünüz hemen korkmasın, mantığı kafamızda oturtmak için evlerimizin duvarındaki ışık anahtarı benzetmesini kullanalım: Eğer odanızdaki lambanın anahtarına gidip onu saniyede bir kez açıp kapatırsanız, odadaki ışık 1 saniye yanar, 1 saniye söner. Peki, bu açma-kapama işlemini insan gözünün fark edemeyeceği kadar hızlı, örneğin **saniyede 1000 kez** yaparsanız ne olur? Lambanın ışığı artık göz kırpmaz; bunun yerine odadaki ortalama ışık miktarı yarı yarıya düşer ve lamba size loş (yarı parlaklıkta) görünür. İşte PWM, elektriksel anahtarları inanılmaz bir hızla açıp kapatarak ara voltaj değerleri taklit etme sanatıdır.
PWM sinyalinin mantığını anlamak için bilinmesi gereken en önemli kavram Duty Cycle (Görev Döngüsü), yani sinyalin bir periyot içindeki "AÇIK" (High) kalma süresinin toplam süreye oranıdır. Yüzde (%) ile ifade edilir:

PWM, analog voltaj üretmenin en verimli ve kayıpsız yolu olduğu için modern elektroniğin her alanında kullanılır:
Arduino Uno kartının üzerinde her pin PWM sinyali üretemez. Arduino Uno'da üzerinde **yaklaşık (~) işareti** bulunan 3, 5, 6, 9, 10 ve 11 numaralı pinler PWM pinleridir.
Kodlama kısmında dijital pinler için kullandığımız digitalWrite(pin, HIGH) yerine, PWM pinlerine özel olan analogWrite(pin, deger) fonksiyonunu kullanırız. Buradaki değer **0 ile 255 arasında** seçilir (8-bit çözünürlük):
analogWrite(9, 0); -> %0 Duty Cycle (0V)analogWrite(9, 127); -> %50 Duty Cycle (2.5V)analogWrite(9, 255); -> %100 Duty Cycle (5V)
PWM, dijital dünyanın katı "0 ve 1" kurallarını esneterek analog dünyanın esnekliğini yakalamamızı sağlayan harika bir hiledir. Eğer projelerinizde bir şeylerin hızını, parlaklığını veya açısını değiştirmek istiyorsanız, arkasındaki gizli kahraman kesinlikle PWM'dir.
yenidir.com teknik terimler sözlüğümüzde elektronikte sıkça duyacağınız bir kavramı daha pratik bir şekilde hafızamıza kazıdık. Bir sonraki yazımızda, Arduino ile bir **RGB LED'in renklerini PWM kullanarak nasıl değiştireceğimizi** uygulamalı bir kod rehberiyle inceleyelim mi? Merak ettiğiniz soruları yorumlar kısmında sormaktan çekinmeyin!
Henüz yorum yapılmamış. İlk yorumu siz yapın!