29 Mart 2024 Cuma
Arduino ProjeleriDers Notları

Arduino ile Matematiksel İşlemler Ve Bundan Fonksiyonlar Kurma

4.6kviews
İyi Günler Sayın Toprak Hattı Ziyaretçileri
Bu yazımızda başlıktan anlayacağınız üzere matematik çalışıcağız. Arduino’da matematik 2 yada daha fazla fonksiyonun bir birleri yada çevre üzerinde oluşan sonuçlarına göre işlem yaptırmak hem şimdi, hem gelecek işlerimizde bize çok büyük kolaylıklar sağlayacak. Çünkü yaptığımız şey tam olarak hesap makinesi kullanmak gibi bir şey. Komutu yazıyorsun, sayıları veriyorsun, Arduino hesaplıyor.
Öğreneceğimiz temel matematik işlemleri olan toplama, çıkarma, bölme, çarpma işlemleri ile inanamayacağınız kadar basit ama bir o kadar da olmaz sa olmaz kod yazabileceksiniz. Mesela counter ( sayıcı ) gerektiren uygulamaları bu videoda öğrendikleriniz olmadan yapmanız çok zor. O yüzden deneyerek ve uygulayarak izlemenizi tavsiye ederim. Nasıl olsa video da tüm varyasyonları deniyorum diye siz, uygulamamazlık yapmayın
Ayrıca video da bir kaç matematik fonksiyonu da öğreniyoruz 4 işlemin yanında. Üs almak, karekök almak, mutlak almak gibi çok kolay fonksiyonlar öğreneceğiz.

Arduino matematiksel işlemler yapmak için matematiksel operatörleri kullanır. Bu operatörleri birlikte kullanarak karmaşık matematik işlemleri, Arduino’ya 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.

Leave a Response

mdusgun
Don't keep up on your dreams. Keep sleeping.