6 Mayıs 2017 Cumartesi

Arduino'da Fonksiyon Oluşturma

Merhaba Webkolog dostları,

Arduino projeleri büyüdükçe ve karmaşıklaştıkça, kodlarımızın yönetilmesi zor bir hal alabilir. Aynı kod bloklarını defalarca yazmak, hem zaman kaybı yaratır hem de kodun okunabilirliğini düşürür. İşte tam bu noktada, programlamanın en temel ve en güçlü araçlarından biri olan fonksiyonlar devreye giriyor. Fonksiyonlar, belirli bir görevi yerine getiren, birbiriyle ilişkili kod satırlarını bir araya getiren bağımsız kod bloklarıdır. Bu sayede kodunuzu daha düzenli, okunabilir ve tekrar kullanılabilir hale getirebilirsiniz. Bu yazımda, kendi fonksiyonlarımızı nasıl oluşturacağımıza ve projelerimize nasıl entegre edeceğimize değineceğim. Hazırsanız, kodlarımızı düzenlemeye başlayalım!


Fonksiyon Nedir? Neden Kullanmalıyız?

Bir fonksiyonu, belirli bir işi yapmak için tasarlanmış küçük bir program parçası gibi düşünebilirsiniz. Örneğin, bir LED'i üç kez yakıp söndürmek, bir sensörden ortalama bir değer okumak veya bir ekrana belirli bir mesajı yazdırmak gibi işlemleri bir fonksiyon içinde toplayabiliriz. Fonksiyonları kullanmanın başlıca avantajları şunlardır:

  • Modülerlik: Kodunuzu mantıksal parçalara ayırarak projenizin daha anlaşılır olmasını sağlar.
  • Tekrar Kullanılabilirlik: Aynı işlevi tekrar tekrar yazmak yerine, sadece fonksiyonu çağırarak kod tekrarını önler.
  • Hata Ayıklama: Hataları tespit etmeyi ve düzeltmeyi kolaylaştırır, çünkü her fonksiyonun belirli bir görevi vardır.

Arduino'da zaten setup() ve loop() gibi iki temel fonksiyonu her zaman kullanıyoruz. Bunlar, bizim programımızın iskeletini oluşturan ana fonksiyonlardır.


Kendi Fonksiyonumuzu Oluşturma

Kendi fonksiyonumuzu oluştururken belirli bir yapıyı takip etmemiz gerekir. Bir fonksiyonun üç ana bileşeni vardır: dönüş tipi, fonksiyon adı ve argümanlar (parametreler).

dönüşTipi fonksiyonAdı(argümanTipi argüman1, argümanTipi argüman2, ...) {
  // Fonksiyonun yapacağı işlemler buraya yazılır
  return dönüşDeğeri; // Dönüş tipi varsa bu satır eklenir
}

Bu yapıya göre birkaç örnek inceleyelim:

Örnek 1: Değer Döndüren ve Argüman Alan Fonksiyon

Bu örnek, iki sayıyı çarpacak ve sonucu geri döndürecek basit bir fonksiyondur. Fonksiyonun int tipinde bir değer döndüreceğini, adının myMultiplyFunction olduğunu ve iki adet int tipinde argüman (x ve y) aldığını görüyoruz.

int myMultiplyFunction(int x, int y) {
  int result;
  result = x * y;
  return result; // Sonucu geri döndür
}

void setup() {
  Serial.begin(9600);
  int carpim = myMultiplyFunction(5, 10); // Fonksiyonu çağır ve sonucu carpim değişkenine ata
  Serial.print("Çarpım sonucu: ");
  Serial.println(carpim); // Çıktı: 50
}

void loop() {
  // Ana döngü
}
Örnek 2: Değer Döndürmeyen ve Argüman Alan Fonksiyon

Eğer bir fonksiyon bir değer döndürmüyorsa, dönüş tipi olarak void anahtar kelimesini kullanırız. Bu örnek, bir LED'i belirli sayıda yakıp söndüren bir fonksiyondur.

const int LED_PIN = 13;

void ledYakSon(int tekrarSayisi) {
  for (int i = 0; i < tekrarSayisi; i++) {
    digitalWrite(LED_PIN, HIGH);
    delay(200);
    digitalWrite(LED_PIN, LOW);
    delay(200);
  }
}

void setup() {
  pinMode(LED_PIN, OUTPUT);
  ledYakSon(3); // Fonksiyonu çağır, LED'i 3 kez yakıp söndürür
}

void loop() {
  // Ana döngü
}
Örnek 3: Argümansız ve Değer Döndürmeyen Fonksiyon

Bu en basit fonksiyon türüdür. Herhangi bir argüman almaz ve bir değer döndürmez. Genellikle belirli bir işlemi yapmak için kullanılır.

void merhabaYaz() {
  Serial.println("Merhaba Webkolog!");
}

void setup() {
  Serial.begin(9600);
  merhabaYaz(); // Fonksiyonu çağırır
}

void loop() {
  // Ana döngü
}

Fonksiyonlar, kod yazma pratiğinizin çok önemli bir parçasıdır. Onları doğru bir şekilde kullanarak projelerinizi daha sürdürülebilir, anlaşılır ve profesyonel hale getirebilirsiniz. Unutmayın, iyi kod yazmak sadece işlevsellikle ilgili değil, aynı zamanda düzen ve okunabilirlik ile de ilgilidir.

Umarım bu makale, fonksiyonlar konusundaki ilk adımlarınız için size yol gösterir ve kodlarınızı daha etkili bir şekilde organize etmenize yardımcı olur.

Webkolog'u takipte kalın!

Hepinize bol kodlu ve başarılı projeler dilerim!

0 yorum:

Yorum Gönder