11 Mart 2014 Salı

Arduino - Matematiksel İşlemler

Arduino matematiksel işlemler yapmak için matematiksel operatörleri kullanır. Bu operatörleri birlikte kullanarak karmaşık matematik işlemleri, arduinoya yaptırabilir sensörlerden elde ettiğimiz değerleri(V,mV) istediğimiz değerlere çevirebiliriz (K,C,metre vs.). 

Bu operatörlere örnek vermek gerekirse,

c= a + b  //  a değeri ile, b değerini toplayıp c değerine atar.
c= a - b  //  a değerinden b değerini çıkartıp c değerine atar.
c= a * b  //  a değeri ile, b değeriniçarpıp c değerine atar.
c= a / b  //  a değerini  b değerine bölüp c değerine atar.
c = a%b //  a değerinin b ye bölümünden kalanı c değerine atar, bu ifadeyi kullanmıştık.


Ledlerin veya butonların hangi pinlere bağlı olduğunu belirtmek için int değerini kullanmıştık.
Bu int değeri bizim belirttiğimiz sayının veya çıkışın tamsayı istendiği anlamına gelmekte.


Eğer bu istenen çıkışın veya girişin ondalık sayı olması isteniyorsa değer int olarak değil float ile girilir. Örneğin ;

int a=5;
float b=5,6;
float c=a+b;
int d= a+b;

Burda sadece olayın nasıl işlediğini anlatmak istiyorum yoksa bu kodlar direkt çalışmaz elbette ki :).

Sonuçlarda  float olarak girilen c değeri 10,6, int olarak girilen d değeri de 11 olarak çıkar.

ÜS Alma işlemi x üssü alınacak sayı, n üs olmak üzere;

 pow(x,n)   olarak alınır.

KAREKÖK alma işlemi x sayısı için de ;

 sqrt(x)           olarak alınır.

MUTLAK  değer alma işlemi yine x sayısı için;

 abs(x)       olarak alınır.

TRİGONOMETRİK ifadeler de  x RADYAN olmak üzere ;

sin(x),cos(x),tan(x) gibi bizim bildiğimiz ifadelerle alınabilir.


NOT : Genellikle radyan değerlerle değil açılarla direktman çalıştığımız için açıları otomatikman radyana çevirebiliriz. Bunun için arduinoda tanımlı DEG_TO_RAD ifadesini kullanabiliriz. Örnek vermek gerekirse açıyı dışardan okuduğumuzu farz edelim ve bunun karesini alalım. aci_d ifadesi dışardan okunuyor olsun.

aci_r = aci_d * DEG_TO_RAD;

y= pow(aci_d,2);

Bu kod ile açı olarak okunulan aci_d ifadesi radyana dönüştürülmüş olur.


BÜYÜK ve KÜÇÜK Olanı Bulma;

x ve y kıyaslanan 2 değer olsun,

max(x,y); // büyük olan hangisiyse çıkış o olur.

min(x,y); // küçük olan hangisiyse çıkış o olur.

2 yorum: