ARM Tabanlı Mikrodenetleyici Temelleri ve Programlama TUNA AYAN www.tuna-ayan.com tunayan@gmail.com
BAŞLAMADAN ÖNCE PWM Nedir? PWM Nasıl Çalışır? LM3S811 PWM Modülü StellarisWare Algoritması
PWM NEDİR? PWM Nedir? PWM(Pulse Width Modulation) darbe genişlik modülasyonu olarak Türkçeye çevrilebilir. Üretilecek olan darbelerin genişliklerini kontrol ederek, çıkışta analog bir sinyal üretebilme işlemidir. Analog sinyal üretmek için dijital ortamın kullanılması olarak da tanımlanabilir.
PWM NEDİR? PWM Nedir? Üretilen kare dalga darbe sinyallerinin genişliklerinin ortalaması, çıkışta üretilecek olan analog değerin elde edilmesini sağlar. referans
Mikrodenetleyici timer yardımıyla sinyal üretir. PWM NASIL ÇALIŞIR? PWM Nasıl Çalışır? Mikrodenetleyici timer yardımıyla sinyal üretir. Ürettiği sinyal ile analog çıkıştan kare dalga verir.
Üzerinde 3 adet PWM üretici blok bulunuyor. LM3S811 PWM MODÜLÜ Üzerinde 3 adet PWM üretici blok bulunuyor. Her bir PWM bloğu 2 adet PWM sinyali üretir. Her bir PWM bloğu: * 1 adet 16-bit sayaç * 2 adet PWM Comparator(karşılaştırıcı) * PWM Sinyal üreteci * Dead-band üreteci * Interrupt tetikleme seçeneğine sahiptir.
Fonksiyonel Özellikler: PWM Timer: LM3S811 PWM MODÜLÜ Fonksiyonel Özellikler: PWM Timer: Azalan ve artan-azalan şekilde olmak üzere iki mod ile çalışır. Timer çıktısı için 3 adet sinyal kullanılır.
Fonksiyonel Özellikler: PWM Sinyal Üreteci: LM3S811 PWM MODÜLÜ Fonksiyonel Özellikler: PWM Sinyal Üreteci: 2 adet PWM sinyali üretir. Azalan modda ve artan-azalan modda PWM sinyalini etkileyen durumlar vardır. Eğer yakalama değerleri ile load ve sıfırlama değerleri çakışırsa yakalamalar ihmal edilir. Eğer A ve B yakalamaları çakışırsa PWMA üzerinden sadece A yakalamaları PWMB üzerinden sadece B yakalamaları gerçekleşir.
SERVO MOTOR Servo Motor Nedir? Üzerindeki mil ile dönen ve o mile bağlı bir potansiyometre yardımıyla o anki açısını bulan cihazdır. Eğer mil doğru açıda ise motor çalışmayı durdurur. Açı PWM üzerinden verilen duty cycle ile alakalıdır.
Standart servo motorlar 0- 180 derece arasında hareket edebilirler. Servo motor 20ms gecikme ile sinyal alır. O yüzden periyodu 20ms lik sinyaller göndeririz. Standart servo motorlar 0- 180 derece arasında hareket edebilirler. 4.7 volt ile çalışır. LM3S811 üzerinden beslenmemelidir.
PWM çevresel aygıtı aktif hale getirilir. STELLARISWARE ALGORITMASI PWM çevresel aygıtı aktif hale getirilir. SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM); PWM çevresel aygıtının saat hizi belirlenir. SysCtlPWMClockSet(SYSCTL_PWMDIV_1); PWM bloğu ayarlari yapilir. PWMGenConfigure(PWM_BASE, PWM_GEN_2,PWM_GEN_MODE_UP_DOWN | PWM_GEN_MODE_NO_SYNC); PWM ile üretilecek sinyalin periyodu belirlenir. PWMGenPeriodSet(PWM_BASE, PWM_GEN_2, ulPeriod); Duty Cycle belirlenir. PWMPulseWidthSet(PWM_BASE, PWM_OUT_4, ulPeriod /4); PWM TIMER’ı açılır. PWMGenEnable(PWM_BASE, PWM_GEN_2);