Stm32

STM32 PWM Nedir ?

STM32 Arduino PWM Nedir ? Nasıl Kullanılır ?
STM32 Arduino PWM Nedir ? Nasıl Kullanılır ?

Merhabalar arkadaşlar Bugün sizlerle pwm konusunu işeyeceğim. Web’de türkçe kaynaklara bakınca stm32 pwm nedir ile ilgili tüm detaylarıyla tam bir döküman bulmak imkansıza yakın sizin bu ihtiyacınızı karşılayacak bir dökümanla karşınızdayım.

STM32 Pwm nedir ?

Arkadaşlar Pulse Width Modulation yani sinyal genişlik modülasyonu stm32 olsun arduino olsun belirli bacakların dijital olarak dalga genişliği ayarlanabilen kare dalga osilatörüdür.

PWM Duty Cycle Görseli
PWM Duty Cycle Görseli

Sinyalimiz High ve Low yani 5V ve 0V olarak sürekli değişmektedir High sinyalimizin Low sinyalimize göre olan oranını ayarlayarak Ortalama bir gerilim elde ederiz.Bu sayede analog hiç bir çıkış kullanmadan ayarlı bir gerilim elde etmemiz mümkündür.

STM32 PWM Nasıl Çalışır Nasıl Ayarlanır.

PWM Modülasyon Grafiği
PWM Modülasyon Grafiği
v
PWM Frekans Grafiği

Yukarıdaki grafiklerdende gördüğünüz üzere ayarlanmış bir frekansta oluşturulmuş PWM grafiğini görüyoruz. Bu grafikteki sinyalimiz 50 Hz %50 Duty Cycle oranına sahip Şimdi bu değerlerin neyi ifade ettiğini daha iyi anlamak için tanımların anlamlarını inceleyelim.

On Time Nedir ?

Frekansın yüksek kenara geçtiğinde yüksekte kaldığı süreyi anlatır. Grafiktende görebilirsiniz.

Off Time

Frekansın Düşük kenara geçtiğinde düşükte kaldığı süreyi gösterir.

Period Nedir ?

Grafikte de göreceğiniz gibi On time ve off time sürelerinin toplamını işaret eder yani bir frekansın tamamlanma sürecini anlatır.

Frekans Nedir ?

Saniye başına Üretilen pals adetini anlatır. Örneğin Bizim şebeke elektriğimiz de sinus dalga olsada bir frekansı vardır 50 Hz dir yani saniyede 50 defa yükseğe geçer.

Matematiksel hesaplamalar

Arkadaşlar Artık genel olarak Pwm frekansını anladığımızı düşünüyorum Ve bu frekansı Arduino / Stm32 de nasıl ayarlayacağımızı anlatmadan önce gireceğimiz değerleri nasıl elde edeceğimizi anlatacağım.

Örneğin Timer ile 1 ms Pals yaratmak istiyorsunuz bunun hesaplaması nasıl yapılır gibi sorularınıza yanıt..

Arkadaşlar Matematiksel hesaplamalarda anlayacağınız ve kullanabileceğiniz şekilde ifadeler kullanacağım Bu konuda bilgili arkadaşlar Kullandığım ifadelerin ansiklopedik karşılığına denk gelmediğiniz düşünebilirler ancak Mikrodenetleyici Kullanacak bir insanın çokta derine inmeden bu işi yapabilmesini istediğimden ifadeleri basitleştireceğim!

Frekans Hesabı

Arkadaşlar özellikle timer kullanımında istediğimiz frekansı elde etmek çok çok önemlidir ve bu kısım ilk bakışta biraz karmaşık görünebilir ama hiçte öyle değil !!

istediğimiz frekansı elde etmek için öncelikle işlemcimizin çalıştığı frekansı bilmemiz gerekir buna bağlı olarak timer frekansı farklı olabilir onuda düzenlemek gerekir.

Örneğin timer frekansımız 8 MHz Biz 10 Khz Frekans Elde etmek istiyoruz diyelim bu durumda 8MHz olan frekansımızı Prescaler dediğimiz bölücü ile bölmeliyiz.

Kaça böleceğimizi Bulmak için frekansımızı istediğimiz frekans değerine bölelim

Prescaler hesabı
Çıkan değerimiz 800 olacak

Sonrasında artık 10KHz hıza ulaşmak için bölenimimizi bulduk 800 şimdi frekans hesabımızı yapabiliriz.

Frekans hesabı
10000 HZ değerimizi elde ettik.

Frekansın Süresini Bulmak

Frekansımızın pals süresini Bulmak için uygulamamız gereken Formül

Frekans Süre Hesaplama Formülü
Frekans Süre Hesaplama Formülü

Şimdi bu yaptığımız işlem ile elde ettiğimiz frekansın ne kadar sürede pals verdiğini gördük..

Duty Cycle oranını hesaplama

Duty hesabı çok basittir arkadaşlar aşağıdada göreceğiniz gibi

On time / On time + Off time )*100

Yaptığınızda Gerekli Duty cycle oranını elde edeceksiniz.

Stm32 PWM Frekans ayarlama

Stm32 de frekansımız 8 MHz varsayalım ve 10 KHz frekans elde etmek istiyoruz Bunun için basit bir formülümüz var.

Prescaler = İşlemcinin Bölücü değeridir.

Auto Reload Register (ARR) = Yeniden yükleme yazacı Bu değer aynı zamanda Duty cycle ı ayarladığımız yazaçtır burdaki değer diyelim 1000 Bunu yazılımınızda compare yaparken 500 girerseniz ki bu yarısı olacaktır. duty cycle oranınız %50 olacaktır.

STM32 Timer Frekans Hesaplama

Arkadaşlar pwm ile ilgili bahsedeceklerim şimdilik bu kadar umarım faydalı olmuştur. Dilerseniz bu ayarları hızlı ve otomatik şekilde yapmak isterseniz sizleriçin bir program paylaşıyorum indirip rahatça kullanabilirsiniz.

Timer hesaplama Programı
Timer Hesaplama Programı

Etiketler

Onur NP

Arduino Stm32 gibi Mikrodenetleyici PLC Otomasyon sistemleri ve Genel elektronik projeleri üzerine örnek paylaşımlar yapmaktayım Endüstriyel ve Kişisel proejelerinize Ücretli olarak destek verebilirim.

İlgili Makaleler

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu
Call Now ButtonAra
Kapalı
Kapalı