işlemci kontrollü sinüs üretimi

Başlatan Hattusa, 22 Ağustos 2011, 23:01:50

z

#15


y(1)=255*(1+sin(6.28*1/32))/2=152
y(2)=255*(1+sin(6.28*2/32))/2=176
y(3)=255*(1+sin(6.28*3/32))/2=198
y(4)=255*(1+sin(6.28*4/32))/2=217
....
....
....
y(28)=255*(1+sin(6.28*28/32))/2=37
y(29)=255*(1+sin(6.28*29/32))/2=56
y(30)=255*(1+sin(6.28*30/32))/2=78
y(31)=255*(1+sin(6.28*31/32))/2=102
y(32)=255*(1+sin(6.28*32/32))/2=127




Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Hattusa

bi yüzsüzlük yapayım konu ile ilgili basit bir şema ve yazılım dosyası veremezmisiniz?  :-[
vardım ilim meclisine eyledim talep, meğer ilim en gerideymiş illa EDEP, illa EDEP <muhyiddin Arabi K.S.>

z

dim y[32]
for n=1 to 32  
    y(n)=int(255*(1+sin(6.28*n/32))/2)
next n



Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Klein

#18
Örnekler C için verildi. Proton'a uyarlanabilir.

float sine_degree, sine_value;
sine_value=sin(sine_degree*PI/180);

sine_degree için verdiğiniz değere göre  -1~1 arasında değer alırsınız.  Bu değeri yarıçap ile çarparsanız dik kenarın uzunluğunu elde edersiniz.

Daha basit anlatımıyla.
sinüsünüzün  90 derecede , yani en yüksek olduğu noktada 10V olduğunu varsayalım.
bu durumda sine_degree değerine 90 verrseniz  elde edeceğiniz sine_value değeri 1 olacaktır.  bunu  genlik ile , yani 10 ile çarparsanız elde edeceğiniz değer 10V olur.
Eğer PWM kullanıyorsanız:
PWM max değeri 1023 ise  sine_value değğerini 1023 ile çarparsınız.

Ancak burada dikkat edilecek nokta  sine_value değerinin  -1 ile 1 arasında olduğudur.  Eğer negatif ve pozitif alternans kullanmayacaksanız , sinüs dalganız hep pozitif değerde olacaksa ,  sine_value değerine  1 eklemeniz  ve max değerinizin yarısı ile çarpmanız gerekir.

Diğer bir konu ise  sinüs fonksiyonunun işlemciyi oldukça kasacak olması. 
Benim önerim sinüs tablosu kullanmanız yönünde olacaktır. Bu tabloyu excell ile kolayca hazırlayabilirsiniz.

Örnek:
diyelim ki PWM çözünürlüğünüz 10 bit. yani 1023.  1023/360 =  ~0,35 derece. yaklaşık 0,35 derece açılarla sinüsünüzü oluşturabilirsiniz.

A sütununa  0 dan başlayıp 0,35 artarak 360' a kadar giden veri ekleyin.
B sitununa   =SİN(A1*Pİ()/180) formülünü ekleyip tüm satırlara kopyalayın.
C sütununa =(B1+1)*512  formülünü yazıp tüm satırlara kopyalayın.

C sütununda 0-1023 arasında değişen sinüs değerleriniz var. Bunu lookup tablo haline getirip kullanabilirsiniz.


NaMcHo

Alıntı yapılan: FxDev - 23 Ağustos 2011, 00:23:34
İnceleyiniz:

http://www.fxdev.org/cosinus-sinus-array-creator/

Bazen tek katlı filtreler PWM'in DC bileşenini ortaya çıkarmada yardımcı olmayabiliyor.

PWM candır.

Atmega'larda 2 farklı frekansta pwm oluşturabiliyormuş ama PIC'lerde(18  16 serilerinde 18'in üstünü bilmiyorum) oluşturulamıyor  :o

-Hasan-

Alıntı yapılan: bunalmis - 23 Ağustos 2011, 00:23:55
y(1)=255*(1+sin(6.28*1/32))/2=152
y(2)=255*(1+sin(6.28*2/32))/2=176
y(3)=255*(1+sin(6.28*3/32))/2=198
y(4)=255*(1+sin(6.28*4/32))/2=217
....
....
....
y(28)=255*(1+sin(6.28*28/32))/2=37
y(29)=255*(1+sin(6.28*29/32))/2=56
y(30)=255*(1+sin(6.28*30/32))/2=78
y(31)=255*(1+sin(6.28*31/32))/2=102
y(32)=255*(1+sin(6.28*32/32))/2=127

bunalmis Hocam; 6.28 nereden geliyor?

GreeN

Terörü Lanetliyoruz.

LukeSkywalker

#22
Ekte yapmış olduğum örnek var. Tablo oluşturarak yaptım. 360 dereceyi 64 parçaya böldüm buradanda 5.625 derece çıktı. Yani çözünürlüğüm 5.625 derece ve 8 bit R/2R DAC.
http://www.mediafire.com/?74csmyx6pjp2ywd

Hattusa

Alıntı yapılan: maytere - 23 Ağustos 2011, 15:24:25
Ekte yapmış olduğum örnek var. Tablo oluşturarak yaptım. 360 dereceyi 64 parçaya böldüm buradanda 5.625 derece çıktı. Yani çözünürlüğüm 5.625 derece.
http://www.mediafire.com/?74csmyx6pjp2ywd

teşekkür ederim usta paylaşım için, birde merak ettiğim bu sinüsün frekansını nasıl belirleyecez yani kaç khz de çalışıyor ve istediğimiz aralıkta nasıl çalıştırırız?
vardım ilim meclisine eyledim talep, meğer ilim en gerideymiş illa EDEP, illa EDEP <muhyiddin Arabi K.S.>

LukeSkywalker

tablodan çağrım ve porta pasma süresi kısaldıkça frekans artar. asm ile yazmadıkça frekansı hassas olarak ayarlamak zor.

Hattusa

peki arkadaşlar size saçma gelebilir ama şu şekilde bir uygulama yapabilirmiyiz. (ki ben sinüsü illa işlemciye yaptırma gibi zorunluluk yok, sadece sinüsü işlemci ile kontrol etmek istiyorum) işlemcimizden bir pwm üreterek sinüsü bununla kontrol edebilirmiyiz? yani işlemci çıkışımızdan bir pwm ürettirip bunu analog olarak sinüse çevirme şansımız yokmudur? varsa şayet bu pwm in genlik ayaraı ile de sinüsümüzle oynayamayız mı?
vardım ilim meclisine eyledim talep, meğer ilim en gerideymiş illa EDEP, illa EDEP <muhyiddin Arabi K.S.>

z

Ses frekansında kullanılan digital volume kontrol çipleri var PWM i hiç kullanma o zaman.

Yada digital potlardan yararlanabilirsin. Eğer illede Pwm le genlik kontrolu yapacaksan bu duruma VCA (Voltage Controlled Amplifier yada Voltage Controlled Attenuator) yapman gerekir.

Fakat, PWM zaten genlikle dolaylı yoldan oynamayı sağlayan bir teknik.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Hattusa

Alıntı yapılan: bunalmis - 23 Ağustos 2011, 20:53:51
Ses frekansında kullanılan digital volume kontrol çipleri var PWM i hiç kullanma o zaman.

Yada digital potlardan yararlanabilirsin. Eğer illede Pwm le genlik kontrolu yapacaksan bu duruma VCA (Voltage Controlled Amplifier yada Voltage Controlled Attenuator) yapman gerekir.

Fakat, PWM zaten genlikle dolaylı yoldan oynamayı sağlayan bir teknik.

s.a.
bülent hocam benim sinüsü kontrol etmekte ki derdim sinyal üzerinde işlem yapacağımdan zira sinüs sinyali devam ederken ben işlemci ile arka planda örneklemeler alacağım aşağıda ki şekilde ki gibi, o sebeble işlemci ile sinüsü kontrol etmek istiyorum ki örnekleme noktalarımda kayma ve şaşma olmasın, bu düşüncemi gerçekleştirebileceğim bir öneriniz varmıdır?
[IMG]http://www.yukleresim.com/dm-90XH.gif[/img]
vardım ilim meclisine eyledim talep, meğer ilim en gerideymiş illa EDEP, illa EDEP <muhyiddin Arabi K.S.>

Hattusa

ekteki şemada dediğiniz gibi adam atmegaya yaptırmış usta ama MC34119  (Low Power Audio Amplifier) ile yaptırmış o entegreyi nereden bulacaz veya benzerini aynı zamanda bunu nasıl başarmış bilemiyorum.
şemayı incelerseniz işte linki
vardım ilim meclisine eyledim talep, meğer ilim en gerideymiş illa EDEP, illa EDEP <muhyiddin Arabi K.S.>

z

Semada VCA tipinde ozel bir sey yokki.

Saf yazilim.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com