duty sürelerini nasıl hesaplarım

Başlatan CaFFeiNe, 01 Şubat 2017, 09:35:44

CaFFeiNe

merhaba

resimdeki gibi bir sinyal oluşturmak istiyorum 100hz kare dalga (5ms High, 5ms LOW) fakat 0Hz'den 100Hz'e 1saniyede hızlanarak çıksın, bu 1saniyelik kısımdaki duty sürelerini nasıl hesaplarız?



seyityildirim

Duty değişmeyecek. Sadece frekansı arttıracaksın. Bir periyodun yarısında HIGH yarısında LOW ise duty %50. Hangi işlemcide yapacaksan sadece frekansı attıracaksın.

CaFFeiNe

tam anlatamadım demekki

şimdi 100hz için sinyalin HIGH kısmı 5ms, LOW kısmıda 5ms değil mi?

sinyal 0hz'den başlayacak 1sn sonra 100hz olacak diyelim bu durumda mesela 1. saniyeye kadar 12 kez HIGH 12 kez LOW olacak diyelim (12 rakamını attım buda hesaplanıp bulunması lazım) haliyle şöyle bir durum olması lazım

1.HIGH seviye -> 20ms
2.HIGH seviye -> 18ms
3.HIGH seviye -> 15ms
4.HIGH seviye -> 10ms
5.HIGH seviye -> 7ms
...

gibi

nasıl bir matematik ile hesaplanır bu?

JKramer

seyityildirim'ın dediği gibi. Duty sabit, %50.

f=100Hz, Ton=Toff=5ms
f=50Hz, Ton=Toff=10ms
f=10Hz, Ton=Toff=50ms
f=5Hz, Ton=Toff=100ms
f=1Hz, Ton=Toff=500ms

CaFFeiNe




yahu nerdende duty dedim :)

yanlış sordum belki bilemiyorum ama resimlerden sorduğum anlaşılmıyor mu?

üstteki resme bakın o zaman 1. saniyeden sonra nokta aralıkları 10ms olarak görülüyor, 0sn ile 1sn arasına noktaları nasıl yerleştireyim ki ilk mesajımdaki gibi hızlanma eğrisi 0hz'den 100hz'e düz bir çizgi şeklinde çıksın yani bu noktaların adedini ve tam konumlarını nasıl hesaplarız

1. nokta  123ms
2. nokta  221ms
3. nokta  298ms
...

gibi

eğri aşağıdaki gibi de olabilirdi mesela ama bana düz bir şekilde hızlanma yeter




apsis

1sn'yi 1000 e böldüğünü düşün. Bir timer kur ve her 1ms'de bir kesmeye gitsin. Her kesmeye gidişte 100/1000=0.1 Hz'li bir artış sağla(Duty sabit). Buna göre 1sn sonunda frekansın doğrusal bir şekilde 100Hz'ye ulaşacaktır. Bunu illede keseme ile yapmak zorunda değilsin 1ms lik gecikmeler ile de yapabilirsin. Kesme için 1ms dedim ama 1msden küçük sürelerle kesmeye gitmelisin. Çünkü kesme içerisinde koşturacağın komutların belli bir çevrim süresi var.
"Makineye Beyin" MEKATRONİK

JKramer

Hızlanmanın şeklini 0-1 saniye arasında frekansı değiştirme sıklığınız belirliyor. Mesela ilk mesajdaki fotoğraftaki gibi lineer yükseliş istiyorsanız, atıyorum timer'ı kurup her 10ms'de bir frekansı değiştirecekseniz toplamda 1000ms/10ms= 100 defa değiştirmiş olacaksınız. Buna göre 1. saniyedeki frekans 100Hz ise 100Hz/100=1Hz'lik arttırımlar olmalı. Yanlış anlamışsam kusura bakmayın :).

seyityildirim

Alıntı yapılan: CaFFeiNe - 02 Şubat 2017, 12:47:03


yahu nerdende duty dedim :)

yanlış sordum belki bilemiyorum ama resimlerden sorduğum anlaşılmıyor mu?

üstteki resme bakın o zaman 1. saniyeden sonra nokta aralıkları 10ms olarak görülüyor, 0sn ile 1sn arasına noktaları nasıl yerleştireyim ki ilk mesajımdaki gibi hızlanma eğrisi 0hz'den 100hz'e düz bir çizgi şeklinde çıksın yani bu noktaların adedini ve tam konumlarını nasıl hesaplarız



Bu işi pwm üretebilen bir mikroişlemci ile yapcaksanız bahsettiğiniz sürelerin önemi yok. duty sini girersiniz. sadece frekansı arttırırsınız. Mikroişlemci kendisi frekansa göre duty değerine bakaıp ona göre aç kapa yapıyor zaten. Kaçırdığınız nokta bu

dursuncemal

0 dan 100 herz'e diye dusununce 1 hz 1 saniye yapar.1000  ms lik bir periyodu sigdirmak istedigimiz pals adedine gore  hesaplayarak delay fonksiyonu ile olabilir diye dusunurum.
:=