All for Joomla All for Webmasters
Yapabilecekleriniz hayal gücünüz kadar geniştir.
STM
ARDUİNO
ONUR KÖSE
Kişisel Blog

PIC Yazılımsal PWM

PWM (Pulse Width Modulation), darbe genişlik modülasyonu anlamına gelir. Dijital elektronikte motor hız kontrol uygulamalarında, ışık parlaklık uygulamalarında, servo motor açı uygulamalarında sıklıkla kullanılmaktadır.

PWMde 5V darbenin lojik 1 ve lojik 0 zaman aralıkları değiştirilerek farklı voltajlar elde edilmektedir. Örneğin 100hz 5v kare dalganın lojik 1 süresi %50, lojik 0 süresi %50 olursa çıkış gerilimi 2,5V olmaktadır.

PWM Dalganın etkin değerini hesaplamak için Veff = (darbe doluluk süresi * 5) / periyot süresi

Örnek: Periyot 1 msn, Lojik 1 süresi 250 usn olan kare dalganın etkin değeri?

(250usn*5)/1msn = 1,25V olur. Yani %25 PWM darbesi üretilmiştir.

Aşağıda ki resimde PWM dalganın %lik olarak çıkışı verilmiştir.

Bazı PIC modellerinde donanımsal olarak PWM pini bulunmaktadır. Ancak PWM pin sayısı oldukça azdır. Bunun için yazılımsal PWM oluşturacağız.

LED’in parlaklığının çoğalıp azalması, motorun hızının çoğalıp azalması için sinüs şeklinde PWM üretmemiz lazım. Doğrusal bir PWM oluşturursak göze pek hoş gelmemektedir. Bunun için 0-1000 aralığında sinüs sayısı elde edelim. Bu sayıları excelde formül ile oluşturabilirsiniz.

 

 

Görüldüğü gibi 500 den başlayıp 1000e ardında hafif bir eğimle 0a inip tekrar 500e çıkan 300 sayıdan oluşan dizi oluşturmuş olduk.

Grafiksel olarak bakacak olursak;

Oluşturulan bu sayıları da Lojik 1 ve Lojik 0 olarak pine aktardığımız zaman yazılımsal sinüs şeklini elde etmiş oluruz.

Sinüsün simülasyonda görülebilmesi için PWM pini çıkışına seri 10k ve şaseye 1000nF kondansatör bağlamamız gerekmektedir. Ancak gerçekte böyle bi bağlantıya gerek yoktur.

 

Devre;

 

Yazılım;

Yazılımı çalıştırdığımız zaman osilaskop ekranında aşağıdaki gibi PWM sinyali görülmektedir.

Gördüğünüzü gibi düzgün bir sinüs elde etmiş olduk. Frekansı arttırmak veya azaltmak isterseniz for döngüsü içindeki sayaç limiti değiştirmeniz gerekir ben standart olarak 15 verdim.

Sinüs için excel tablosu:   Sin Dalga

Kaynak: Kuzenim Fırat Şenses. PIC Programlama ile ilgili tüm yardımlarından dolayı teşekkür ediyorum.

About the author

Leave a Reply

Merhaba

Bloguma Hoşgeldiniz.

Kategoriler

Arşivler

Etiketler

Çevrimiçi Kişiler

1 misafir