Arduino Matematik ve Trigonometri
Arduino Matematik ve Trigonometri. İlk önce aritmetik operatörlerden kısaca bahsedelim;
Ayrıca “Aritmetik Operatörler” yazımıza göz atınız:
Toplama, Çıkarma, Çarpma ve Bölme
Açıklama
Bu işleçler, iki işlenenin toplamını, farkını, ürününü veya bölümünü (sırasıyla) döndürür. İşlem, işlenenlerin veri türü kullanılarak gerçekleştirilir, bu nedenle, 9 ve 4, ints olduğundan 9/4 2 verir. Bu ayrıca, sonuç veri türünde depolanabilecek sonuçtan daha büyükse işlemin taşabileceği anlamına gelir (örn. 32,767 değerine sahip bir int’e 1 eklenmesi -32,768 verir). İşlenenler farklı türdeyse, hesaplama için “büyük” tür kullanılır.
Eğer sayılardan (işlenenler) şamandıra tipinde veya çift tipindeyse, hesaplama için kayan nokta matematiği kullanılır.
Örnek:
y = y + 3; x = x - 7; i = j * 6; r = r / 5;
Sözdizimi:
sonuç = değer1 + değer2; sonuç = değer1 - değer2; sonuç = değer1 * değer2; sonuç = değer1 / değer2;
Parametreler:
değer1: herhangi bir değişken veya sabit değer2: herhangi bir değişken veya sabit
min(x,y)
İki değer arasından küçük olanı seçer.
sensor = min(sensor, 100); // sensor değeri 100 olana kadar sensor değerini verir. // 100'ü geçerse de otomatik olarak 100'ü verir. // Böylece asla 100'ü aşamaz.
max(x,y)
İki değer arasından büyük olanı seçer.
sensor = max(sensor, 20); // sensor değişkeni 20'den büyükse sensor değerini, küçükse de 20 yi atar. // bu şekilde 20 nin altına düşmez.
abs(x)
Bir sayının mutlak değerini hesaplar.
x = abs(-10); // x = 10 x = abs(10); // x = 10
constrain(x, a, b)
Bir sayıyı bir aralık içinde sınırlar.
x: sınırlandırılacak sayı, tüm veri türleri
a: aralığın alt sınırı, tüm veri türleri
b: aralığın üst sınırı, tüm veri türleri
x döndürür: x, a ile b arasındaysa
a döndürür: eğer x bir a’dan küçükse
b döndürür: eğer x, b’den büyükse
sensVal = constrain(sensVal, 10, 150); //Sensör değer aralıklarını 10 ile 150 arasında sınırlar
map(deger, düşükten, yüksekten, düşüğe, yükseğe)
Bir numarayı bir aralıktan diğerine yeniden eşler.
En çok kullanıldığı şekil analog verinin pwm sinyaline dönüşmesi gibi;
/ * Bir analog değeri 8 bit'e (0-255) eşleştirir * / void setup() {} void loop() { int val = analogRead(0); // val değişkenine 0. analog pindeki değeri depola. val = map(val, 0, 1023, 0, 255); // aldığın 0-1023 arasındaki değeri 0-255 formatında yapılandır. analogWrite(9, val); // 9. analog pine bu değeri yaz. }
pow(temel, üs)
x = pow(a,b) // a üzeri b değerini x’e atar. // x double veri tipinde olmalıdır. // a ve b float veri tipinde olmalıdır.
sqrt(x)
Bir sayının karekökünü hesaplar.
Trigonometri
sin(radyan)
Bir açının sinüsünü hesaplar (radyan cinsinden). Sonuç -1 ile 1 arasında olacak.
radyan float
olmalı. (x=sin(y) //y ise double
olmalı)
cos(radyan)
Bir açının cos’ı (radyan cinsinden) hesaplar. Sonuç -1 ile 1 arasında olacak.
radyan float
olmalı. (x=cos(y) //y ise double
olmalı)
tan(radyan)
Bir açının teğetini hesaplar (radyan cinsinden). Sonuç, negatif sonsuzluk(-∞) ile (∞)sonsuzluk arasında olacak.
radyan float
olmalı. (x=tan(y) //y ise double
olmalı)
Örnekler:
NOT: Buradaki bilgiler arduino.cc sitesinden Türkçeye çevrilmiştir.
Türkçe çevirinin tüm hakları saklıdır.
Bu web sayfası sadece link olarak paylaşılabilir.
Sayfada herhangi bir hata, öneri ve yorumlarınız için iletişim kurmanızı bekleriz.