Arduino Programlama Dili – Matematik ve Trigonometri

0
1589
Okunma

Arduino Matematik ve Trigonometri

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:

Arduino Programlama Dili – Aritmetik Operatörler

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:

Arduino Yerleşik Ö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.


CEVAP VER

Please enter your comment!
Please enter your name here

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.