Arduino Matematiksel ve Trigonometrik Fonksiyonlar

Arduino dili bize bazı matematiksel ve trigonometrik işlemleri yapmak için hazır fonksiyonlar sunmaktadır. Bu fonksiyonlar aşağıda listelenmiştir;

Matematiksel Fonksiyonlar;

  1. abs() – Mutlak değer almak için
  2. constrain() – Aralık sınırlamak için
  3. map() – Bir aralığı başka bir aralığa dönüştürmek için
  4. max() – İki değerden büyük olanını seçmak için
  5. min() – İki değerden küçük olanı seçmek için
  6. pow() – Bir sayının üssünü almak için
  7. sq() – Bir sayının karesini alır
  8. sqrt() – Bir sayının karekökünü almak için kullanılır.

Trigonometrik Fonksiyonlar;

  1. cos() – Bir açının kosinüs değerini radyan cinsinden hesaplamak
  2. sin() – Bir açının sinüs değerini radyan cinsinden hesaplamak
  3. tan() – Bir açının tanjant değerini radyan cinsinden hesaplamak kullanılır

Şimdi yukarıdaki fonksiyonların kullanımlarını inceleyelim;

Matematiksel Fonksiyonlar

1 – abs() :

Bir sayının mutlak değerini almak için kullanılır. Bilindiği üzere bir sayının mutlak değeri, o sayının sıfıra olan uzaklığını vermektedir. Pozitif bir sayının mutlak değeri sayının kendisini verir, negatif bir sayının mutlak değeri ise o sayının pozitif değerini verir.

Sözdizimi : abs(sayi);

Örnek kullanım;

2 – constrain() :

Aralık sınırlamak için kullanılır. Örneğin analog girişten aldığımız değer 0 ila 1023 arasındadır. Biz bu sayıyı 256 ila 512 arasında sınırlamak istersek bu fonksiyonu kullanacağız. Bufonksiyon 3 adet parametre alır. Birinci parametre değişkenimiz, ikinci parametre alt sınırımızı ve üçüncü parametre ise üst sınırımızı belirlemek için kullanılır.

Sözdizimi: constrain(değişken, alt sınır, üst sınır);

Örnek olarak analog 0 girişinden okuduğumuz değeri 127 ile 750 arasında sınırlayalım;

Yukarıdaki kodda 11. satırda analog A0 girişinden okuduğumuz değeri constrain fonksiyonu ile 127 ile 750 arasında sınırlandırdık ve seri porta yazdırdık. Analog girişten okuduğumuz değer 127’nin altında olsa dahi artık 127 olarak görünecek ve değer  750’nin üzerinde olsa dahi 750 olarak görünecektir. Bu aralık içerisindeki değerler ise orjinal okuna değer olarak görünecektir.

3 – map() :

map fonksiyonu bir aralıktaki değeri başka bir aralığa dönüştürme işlemini yapar. Örneğin analog girişten okuduğumuz 0 ile 1023 arasındaki değeri 0 ile 255 aralığına liner (doğrusal) olarak dönüştürmek istersek bu fonksiyonu kullanacağız.

Sözdizimi: map(değişken, alt değer, üst değer, yeni alt değer, yeni üst değer);

Örneğin analog girişten okuduğumuz 0 ile 1023 arasındaki değeri 0 ie 255 aralığına gönüştürelim;

Yukarıdaki kodlarımızın 11. satırında analog A0 girişinden okuduğumuz 0 ile 1023 arasındaki değeri 0 ile 255 arasındaki değere dönüştürüp seri porta yazdırdık.

Örneğin yine seri porttan okuduğumuz 0 ile 1023 aralığındaki değeri tam tersi olan 1023 ile 0 aralığına dönüştürmek istersek fonksiyonumuzu aşağıdaki gibi kullanabiliriz.

 

4- max() :

Bu fonksiyon iki değeri karşılaştırıp büyük olanı seçer.

Sözdizimi: max(deger1, deger2);

Örnek olarak analog A0 ve A1 girişinden aldığımız değerleri karşılaştıralım ve büyük olanı alalım ve seri porta yazdıralım;

5 – min() :

min fonksiyonumuz max fonksiyonumuzun tam tersi çalışır. İki değeri karşılaştırır ve küçük olan değeri alır.

Sözdizimi: min(deger1, deger2);

Örnek olarak analog A0 ve A1 girişinden aldığımız değerleri karşılaştıralım ve küçük olanı alalıp seri porta yazdıralım;

6 – pow() :

pow fonksiyonumuz bir sayının istediğimiz kuvvetini (üssünü) almak için kullanılır. İki adet parametre alır. Birinci parametre sayı değeri, ikinci parametre ise üs değeridir.

Sözdizimi: pow(sayi, kuvvet);

Örnek kullanım:

7 – sq() :

sq fonksiyonu bir sayının karesini almak için kullanılır. Parantezler arasına girilen sayının karesini döndürür.

Sözdizimi: sq(sayi);

Örnek kullanım:

8 – sqrt() :

sqrt fonksiyonu parantezler içerisine girilen sayının  karekökünü almak için kullanılır.

Sözdizimi: sqrt(sayi);

Örnek kullanım:

Trigonometrik Fonksiyonlar

1- cos() :

cos fonksiyonu fonksiyona gönderilen açı değerinin kosinüsünü radyan cinsinden hesaplayıp döndürür. Float türü parametre alır, dönüş değeri double cinsindendir. Yani burada dikkat etmemiz gereken kısım, cosinüsünü alacağımız açı değerinin sonucunu double türündeki değişkene atamaktır.

Sözdizimi: cos(açı);

Örnek kullanım:

Yukarıdaki örnekte 270 derece açının kosinüsünü aldık ve double türü “kosinus” değişkenine atadık. Fonksiyonun dönüş değeri 1 ile -1 arasındaki ondalıklı değerlerdir. Eğer biz fonksiyonun dönüş değerini double yerine integer türü değişkene atasaydık sadece 1, 0 ve -1 değerini görebilirdik. Bunun sebebi integer türü değişkenler sadece tamsayı türünden değerleri tutabilir, ondalıklı değerleri hafızada tutamazlar.

2- sin() :

sin fonksiyonu fonksiyona gönderilen açı değerinin sinüsünü radyan cinsinden hesaplayıp döndürür. Float türü parametre alır, dönüş değeri double cinsindendir.

Sözdizimi: sin(açı);

Örnek kullanım:

Yukarıdaki örnekte 270 derece açının sinüsunü aldık ve double türü “sinus” değişkenine atadık. Fonksiyonun dönüş değeri 1 ile -1 arasındaki ondalıklı değerlerdir. Eğer biz fonksiyonun dönüş değerini double yerine integer türü değişkene atasaydık sadece 1, 0 ve -1 değerini görebilirdik. Bunun sebebi integer türü değişkenler sadece tamsayı türünden değerleri tutabilir, ondalıklı değerleri hafızada tutamazlar.

3 – tan()  :

tan fonksiyonu fonksiyona gönderilen açı değerinin sinüsünü radyan cinsinden hesaplayıp döndürür. Float türü parametre alır, dönüş değeri double cinsindendir.

Sözdizimi: tan(açı);

Örnek kullanım:

Yukarıdaki örnekte 270 derece açının tanjantını aldık ve double türü “tanjant” değişkenine atadık. Fonksiyonun dönüş değeri 1 ile -1 arasındaki ondalıklı değerlerdir.

Evet arkadaşlar böylelikle arduinoda kullanılan Matematiksel ve Trigonometrik fonksiyonları ele aldık.

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir