Arduino ile PWM ve Frekans Kontrolü » Badursun
Tags: arduino, Arduino ile PWM ve Frekans Kontrolü, Frekans Kontrolü, gömülü sistemler, mcu, PWM, PWM ve Frekans Kontrolü
Anthony Burak DURSUN 4 sene ago
Bu kontrolde tamamen anahtarlama ile sağlanır. Anahtarlama ne kadar hızlı yapılırsa, PWM ile aktarılan sinyalin gücü o kadar da artar. Örneğin bir lambaya gönderilen sinyalde PWM tekniğine ihtiyaç duyuluyorsa, bu teknik 120 Hz frekans değerinde uygulandığında maksimum verim elde edilebilir.
“Duty Cycle” yani görev döngüsü olarak tanımlanan bir kavram bulunuyor ve PWM tekniğinde de sıkça karşımıza çıkıyor. Görev döngüsü kavramı aslında yapılan işlemin periyodunu belirtiyor. Bu döngü düşük seviyelerde ise aktarılan güç düşük olurken, döngünün yüksek seviyelerinde yüksek güç aktarılıyor.
PWM ve Frekans kontrolü aslında bir çoğunuzun evinde gördüğü, kısılıp açılabilir lambalar gibidir. Işığın şiddetini ayarlamak için bir nevi potansiyometre kullanılır, burada ise anahtarlama (açma kapama) işlemi olarak uygulanır. Evinizde ki lambanın düğmesini saniyede 50 yada 100 kere açıp kapatmanız gibi. Bunu çok seri yaparsanız, lambanızın belirli bir kısıklıkta kalacağını görürsünüz (mesela tabii, bunu başarma şansınız yok:)
Sol Resim: İniş ve Çıkışlar, On – Off hareketidir. Yatay çizgi on ve off arasında ki süredir. Bu süre, kare dalga oluşturur. Buna da PWM denir. Sağ Resim: PWM´in osiloskop ile görünen kare dalga boyları.
Arduino bünyesinde de PWM tekniği kullanılabiliyor. Arduino bünyesinde kullanılan PWM tekniği ile dijital sonuçlardan analog sonuçlar elde edilebiliyor. Bunun yanı sıra özellikle kontrol için ihtiyaç olan kare dalga üretimi de gerçekleşiyor.
Kare dalga, bilindiği gibi “on” ve “off” konumlarını sağlıyor.
Böylece kare dalga gönderildiğinde “on” konumunda 5V uygulanırken, “off” konumunda 0V uygulanmış oluyor. İşte bu “on” kısmının aktif olduğu genişliğe “Pulse Width” yani “Sinyal Genişliği” adı veriliyor. Bu doğrultuda istenilen sinyal genişliği elde etmek için de modülasyon tekniği uygulamanız gerekiyor ki bu da PWM’in temel mantığıdır.
Arduino ile yanıp sönen bir LED devresi kurmak veya Arduino ile DC motor kontrolü gerçekleştirmek için PWM tekniğini kullanmamız gerekiyor. Bu teknik de Arduino’ya gömülen yazılımda yatıyor. “analogWrite(…)” fonksiyonu ile görev döngüsünün miktarı belirleniyor ve kare dalga elde ediliyor.
Bir LED kısıp, ışını arttırabilirsiniz.
Örnek bir PWM Sinyal Üretim Kodu
delayMicroseconds(100); // Yaklaşık %10 döngü 1KHz de
Daha fazla örnek ve detaylı anlatım için http://www.arduino.cc/en/Tutorial/SecretsOfArduinoPWM adresini ziyaret edebilirsiniz.
PWM ve Frekans Kontrolü
Arduino Studio : Yepyeni Bir Arduino IDE’si