avatar_Hattuşa

atan formulü neden yanlış hesaplar

Başlatan Hattuşa, 16 Şubat 2015, 10:30:09

Hattuşa

slm arkadaşlar;
proton help klasöründen yararlanarak atan( ) komutu ile açı hesaplatmak istedim ancak işlemci hatalı sonuç veriyor. bunu neden yanlış hesaplar?

örnek:


Dim Adc0 As Word
Dim deGer As Float
Dim AcI As Float
MaIn:
Adc0 =ADIn 0
While ADCON0.1 =1 :Wend
Print At 1,1,Dec Adc0," "
deGer =Adc0 /10
AcI =ATan (deGer)
Print At 2,1,Dec1 deGer," "
Print At 2,10,Dec1 AcI," "

GoTo MaIn


burada adc0 değerim 339 iken float değişkenimdeki deger =339 /10 =33,9 ve açı =atan(deger) diye komut verdiğimizde sonucun 88,5643 çıkması gerekirken 1,5 olarak çıkıyor, şuan isisde denedim ama geçen hafta evde de denemiştim sonuç aynıydı. hatta float değişkenlerinin hesaplamalarını doğru yapabilmesi için "Declare Float_Display_Type = Fast" gibi bir kod vardı onuda denedim sonuç değişmedi. bir fikri olan varmı?

er-da

#1
merhaba pro-TR açı hesaplamalarında iki değer olması gerekir X ve Y sen  sadece  adc0 dan aldığın değerler yapmaya çalışmışsın
önceleri  yaptığım bir çalışma  x ve y için  misalen verdim o rakamları  x ,Y birer analog giriş olacak.. protom örneklerden VDI hesabı..  ;). selamlar
nclude "Proton18_4.Inc" 
$define RadToDeg(x) ((x) *57.29578)
Dim Floatin As Float 
Dim Floatout As Float   
Dim x As Word
Dim y As Word
Dim deg As Float
DelayMS 100 
Cls 
x=511
y=509
Floatin = y/x
Floatout = ATan(Floatin)
deg = RadToDeg (Floatout)
 
Print At 1,1,"Rad:", Dec Floatout 
Print At 2,1,"Deg:", Dec deg
Stop

Hattuşa

er-da hocam,
bende de x ve y gibi iki değer var, yani değerin bir tanesi adc değeri diğeride 10 olarak gösterdim.

Mucit23

Protondaki trigonometrik fonksiyonlar radyan değerlerle çalışır. Bunuda dikkate alın
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

Hattuşa

#4
Alıntı yapılan: Mucit23 - 16 Şubat 2015, 15:15:50
Protondaki trigonometrik fonksiyonlar radyan değerlerle çalışır. Bunuda dikkate alın

mucit ustam konuyu biraz daha açabilirmisiniz? yani atan komutunu çalıştırabilmem için nasıl bir yol izlemeliyim
yani çıkan sonucu 180/pi değeri ile mi çarpmalıyım


er-da

proton help te radyan dan dereceye  çevirmek için bu satırı eklemek gerek miş..
$define RadToDeg(x) ((x) *57.29578)


trgonometriyi okulda hiç sevmedim iyi de öğrenemdim fakat  meslek hayatımda devmlı karşıma çıktı  >:(

benimde  sormak istediğim  şunlar   sonuç=0 -180   sonuç=0-360(359)  sonuç=-90 +90 derece nasıl hesaplanır..?

Hattuşa

ustam bende pek anlamam trigonometriden ben sadece hesap makinası ile karşılaştırdım ve farklılığı farkettim.sizin sorunuzun trigonometri ile alakası nedir? yani 4 işlemli matematik değil mi?


mucid23 ustama burdan tşk ederim. yardımcı olduğu için.

Mucit23

Alıntı Yapbenimde  sormak istediğim  şunlar   sonuç=0 -180   sonuç=0-360(359)  sonuç=-90 +90 derece nasıl hesaplanır..?

Neyi hesaplamaya çalışıyorsun. Bu değerler nedir?
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

er-da

#8
Alıntı yapılan: Mucit23 - 16 Şubat 2015, 16:24:35
Neyi hesaplamaya çalışıyorsun. Bu değerler nedir?

iki sinyal arasındaki faz açısı farkı aynı frekans ve amplitude olan

Mucit23

Alıntı yapılan: er-da - 16 Şubat 2015, 16:53:56
iki sinyal arasındaki faz açısı farkı aynı frekans ve amplitude olan

Bir önceki mesajından hiçbirşey anlamamıştım. Bu mesajında ise bana birşey kalmamış. Resim herşeyi açıklıyor zaten formül felan verilmiş işte.

Senin yapman gereken tek şey iki farklı sinyalin sıfır geçişleri arasındaki süreyi ölçmek.

A ve B adında iki adet yukarıdaki gibi sinyalin olsun. A sinyalinin sıfır noktasından geçtiği anda bir timer başlatırsın. Sonra B sinyali sıfırdan geçerse Timeri durdurup timerin değerini okursun. Timerin değeri ile t zamanını bulursun. Sonrasında verdiğin resimdeki hesaplamaları uyguladın mı faz farkını hesaplamış olursun.
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

Powered by EzPortal