Arduino Programlama’ya Bakış

Posted by on Oca 26, 2014 in Arduino

Arduino Programlama
Arduino Programlama dili basitleştirilmiş C++ kullanır. Genel olarak üç bölümden oluşur: Tanımlamalar, kurulum ve ana program bloğu.

setup()

Arduino’ya enerji verildiğinde veya yeniden başlatıldığında setup() fonksiyonu bir defa çalışır. Bu fonksiyon değişkenler, pin modları, seri iletişim, kütüphaneler vb. için kullanılır.

loop()

Loop Türkçesi döngüdür. Adından anlaşılacağı gibi setup() fonksiyonundan sonra döngü şeklinde sürekli çalışır. Ana program kodları bu fonksiyon içine yazılır.

//Tanımlamalar
void setup() {
// Kurulum kodları buraya yazılır. (Bir defa çalışır)
}
void loop() {
// Ana program kodları buraya yazılır. (Sürekli çalışır)
}

Arduino Programlama dilinin temel özellikleri

  • Program yazımı belirli kalıpta, bloklar halinde olur.
  • Bloklar, { } parantezleri ile oluşturulur.
  • Komutlar aynı veya alt alta satırlara yazılabilirler.
  • Tüm komutlar, noktalı virgül (;) ile biter. Yalnız blok başlatan ifadelerden sonra noktalı virgül kullanılmaz.
  • Programda kullanılan tüm değişkenler ve bilgi tipleri bildirilir.
  • Programın başında kütüphaneler aktifleştirilir/çağrılır.
  • Açıklamalar “//” ve “/* */ ” (Birden fazla satır için) ile yazılır.
  • #define ile eşdeğer ifade atanır.
  • #include ile kütüphane çağrılır.

Kontrol Yapıları

if / else

Arduino Programlama temel karar komutudur. “if” ‘ten sonra verilen koşul doğru ise bu if bloğundaki işlemler, yanlış ise “else” bloğundaki işlemler yapılır.

if (koşul)
{
// Koşul sağlanıyor ise yapılacak işlem
}
else
{
// Koşul sağlanmıyor ise yapılacak işlem
}

for

Arduino Programlama dilinde temel döngü komutudur. “for” içinde yer alan koşul doğru olduğu sürece, döngüdeki işlemler gerçekleştirilir.

for (başlangıç değeri; koşul; artım) {
//işlemler
} 

switch / case

Seçim yapılarak program akışının istenilen bloklara atlamasını sağlar. “switch” ‘teki değişken, “case” teki hangi değeri alırsa, karşılığındaki işlem yapılır.

 switch (seçim değişkeni) {
    case 1:
      // Seçim değişkeni 1 olduğunda yapılacak işlem
      break;
    case 2:
     // Seçim değişkeni 2 olduğunda yapılacak işlem
      break;
    default:
      // Varsayılan bağımsız işlem (isteğe bağlı)
  }
Break, bir döngüyü veya switch komutunu sonlandırmak için kullanılır.

while

“while” ile belirtilen koşul doğru olduğu sürece, döngü içindeki işlemler gerçekleştirilir.

while(koşul){
  // Koşul doğru olduğu sürece yapılacak işlemler
}

do – while

“while” ile belirtilen koşul doğru olduğu sürece, döngüdeki işlemler yapılır.

do
{
    // Koşul doğru olduğu sürece yapılacak işlemler
} while (test koşulu);

Operatörler

Matematiksel Karşılaştırma Mantıksal
=Eşittir ==Eşittir &&VE
+Toplama !=Eşit değildir ||VEYA
Çıkarma <Küçüktür !DEĞİL
*Çarpma >Büyüktür
/Bölme <=Küçük eşit
%Mod alma >=Büyük eşit
İşlemleri belirten sembollere, bilgisayar dilinde “operatör” denir. Tabloda temel operatörler ve tooltip gösterimli olarak karşılıkları verilmiştir.

Fonksiyonlar

  • Digital I/O

int ledPin = 13;     // Led tanımlandı, pin 13
int inPin = 7;               // Buton tanımlandı, pin 7
int val = 0;                 // Değişken tanımlandı
void setup()
{
pinMode(ledPin, OUTPUT);     // Pin 13 çıkış olarak ayarlandı
pinMode(inPin, INPUT);       // Pin 7 giriş olarak ayarlandı
}
void loop()
{
digitalWrite(ledPin, HIGH);  // LED on
delay(1000);                 // 1 saniye bekle
digitalWrite(ledPin, LOW);   // LED off
delay(1000);                 // 1 saniye bekle
val = digitalRead(inPin);    // pin 7 yi oku, val değişkenine ata
digitalWrite(ledPin, val);   // Buton değerine göre LED on veya LED off
delay(1000);                 // 1 saniye bekle
}

pinMode()

Pinleri giriş veya çıkış olarak yapılandırma işlemi yapar.

digitalWrite()

Çıkış olarak ayarlanan pinlerin değerlerini, HIGH veya LOW olarak ayarlar.

digitalRead()

Belirtilen digital pin değerini okur.

  • Analog I/O

analogReference()

Analog giriş için referans gerilimini ayarlar.

analogRead()

Belirtilen analog pin değerini okur.

analogWrite()

Ayarlanan pinden analog çıkış almayı sağlar. LED parlaklığı, motor hızı ayarlama gibi işlemlerde kullanılır.

Creative Commons License
Arduino Programlama’ya Bakış by Caner Gezgez is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 4.0 International

7 Comments

  1. Merhabalar,

    Yakın zamanda Arduino için ücretsiz e-kitap yazdım.
    Makaleniz için teşekkürler

    • arduıno akıllı ev otomasyonu ile ilgili bitirmem var fakat daha yeni başlıycam nerden başlarsam daha çabuk sonuca ulaşırım?

  2. merhaba ben dht11 ile ortamın sıcaklığını ve nemini ölçüyorum bu verilere göre ayrı ayrı röle sürebiliyorum ancak if kodunu genişleterek sıcaklık 25 in üstünde ise fanı çalıştır ve nem 50in üstündeyse fanı çalıştır ancak ikiside bu değerlerin altında ise fanı durdur işlemini yapmak istiyorum. yani 2 input ile 1 outputu şartlandırmak istiyorum. kod konusunda yardımcı olabilir misiniz? teşekkürler

    • if komutundan sonra şartı yazarken önce 1. şartı yaz ardından aralarına && koyarak(2tane) 2. Şartı yaz.

  3. Sadece if yerine else if komutu yazılır bu mesela 25 derecede roleyi aç koda cevirirsek ilk kosul sadece if yazılır sonra diğer kosulları ise else if yazmamız gerekir

    • Hocam kolaygelsin benim elektronik bilgim yok ama arduinoyla bi proje yapmaya çalışıyorum 2 ır sensör 16basamak merdiven alttan gelince yukarı üstten gelince aşağıya doğru 2yada3 milisaniye sırasıyla yanıcak kodlar konusunda yardımcı olurmusunuz yada bana bu projeyi komple hazırlayabilirmisiniz ve bide maliyeti ne olur acaba geridönüş yaparsanız sevinirim

  4. selamlar mesele on off switch tanımladık bu swiche 3 kez ust uste basılırsa x cıkısndaki ledi yak nasıl yazabiliriz.. ?

Bir Cevap Yazın