Fonksiyonlar ve void setup - void loop ( BareMinimum) (Arduino Programlama - C/C++ dersleri 2)





    Uzun bir aradan sonra merhaba. Bu yazımda önce Arduino programlarken her zaman kullanacağımız   Setup, loop terimlerinden ve kendimiz nasıl yeni fonksiyon yazacağımız dan bahsedeceğim. Zaten yandaki şekil Setup ve Loop için kafanızda bir şeyler canlandırmıştır. Bu arada Void setup ve Void loop yani Arduinonun çalışması için gereken kodlara BareMinimum denmektedir.



    Void Setup

    void setup bir fonksiyondur ve yeni Arduino IDE lerinde siz yazmadan yeni sayafada karşınıza gelir. bu fonksiyon karta elektrik verdiğimizde sadece bir sefer çaılışır ve sırasını loop fonksiyonuna bırakır. Eğer reset butonuna basarsak yani gücü kesip geri verirsek tekrar çalışır. Sadece bir defa çalıştığı için adından da anlaşıldığı üzere kartın kurulum bilgilerini barındırır. Genelde seri bağlantı başlatılması, pinlerin nasıl çalışacağının belirlenmesi gibi sadece başta ve  bir defa yapılması gereken işlemler burada belirtilir. pinlere isim takma yada değişken belirleme işleri ise bu fonksiyon çalışmadan yapılır.

   Void Loop

   Setup fonksiyonun bir sefer çalışması ardından devamlı çalışan kısımdır. Bu kısımda devamlı olarak çalışmasını istediğimiz sensör ölçümü ve işlenmesi, veri alışverişi, pini aktif ve pasif ( 1-0 durumu) gibi kodlar içerir.


    Kullanımları aşağıda ki gibidir.

void setup() {
  // yalnızca bir sefer çalışacak kurulum kodları
}

void loop() {
  // devamlı bir döngü ile çalışacak işlem kodları
}

   Fonksiyon Oluşturma

    Fonksiyonlar bir işleme isim takma gibi düşünebiliriz. Özellikle uzun kodlarda kafamız karışabilir veya bir işlemi birçok kez kullanmamız gerekebilir, bu gibi durumlarda fonksiyonları kullanmak çok yararlı olacaktır. Mesela bir çizgi izleyen robot yaptığımızda motrun sola ve sağa dönmesi için iki farklı fonksiyon yazdığımızda kodumuz dağa anlaşılır olacak ayrıca düzeltmeleri  daha kolay yaparsınız. sözlü anlatımdan ziyade bir örnek daha anlaşılır olacaktır.


int led = 13; // 13. pinimizin adını led olarak belirliyoruz
void setup() {
  // sadece bir defa çalışacak kurulum kodlarımızı yazıyoruz(pin mod, seri bağlantı başlangıcı gibi)
  pinMode(led, OUTPUT); // led pinini çıkış pini olarak ayarlıyoruz
}

void loop() {
  //sürekli döngü içinde çalışacak kodumuzu yazıyoruz
ac_kapa();//ac kapa fonksiyonunu çalıştırıyoruz fonksiyon loop içinde olduğu için 
}

void ac_kapa(){
  //kendimize ait bir fonksiyon yazıyoruz
  digitalWrite(led, HIGH);   // Ledi yakıyoruz
  delay(1000);                  // bir saniye led açık durumda bekliyoruz
  digitalWrite(led, LOW);    // ledi kapıyoruz
  delay(1000);                  // bir saniye daha bekliyoruz
  }

Daha sonra eklenecek örnek projelerde kullanımları ile fonksiyonları daha iyi kullanacağız.Ayrıca devre şemasını eklemiyorum sitemde 3 farklı örnek bulunmakta. Direnç eklemeyi unutmayın her ledin farklı bir iç direnci olduğu için bazı ledler direnç kullanmadan yanarken bazıları küçük dirençler kullansanız dahi bozulabilir bunun hesabını da ilerleyen günlerde paylaşacağım

5 yorum:

  1. Arduino da sistemin kalbi setup mıdır? Yoksa loop mu? Hocamız sordu biz setup dedik ama loop olduğunu söylüyorlar.

    YanıtlaSil
    Yanıtlar
    1. Öğretmenin yumurtamı tavuktan çıkar, tavuk mu yumurtadan diye sorumuş. Keşke yanıt olarak ben "kod yazıcısıyım" deseydin.

      Sil
    2. Ben anonimim

      Sil
  2. ben buzzer uygulamasında hep devam etmesini istemiyom ne yapmam lazım acil yardım

    YanıtlaSil