1 Nisan 2017 Cumartesi

Arduino'da Diziler

Arduino'da Diziler: Verileri Gruplandırmanın En Etkili Yolu

Merhaba Webkolog ailesi,

Daha önceki yazılarımda Arduino programlamanın temel yapı taşlarını ele almıştık. Bugün ise, birden fazla veriyi tek bir çatı altında toplamamızı sağlayan ve projelerimizi çok daha düzenli hale getiren diziler (arrays) konusuna değineceğim. Birbirleriyle ilişkili verileri ayrı ayrı değişkenlerde tutmak yerine, bir dizi içinde saklamak, hem kod yazmayı kolaylaştırır hem de kodumuzun okunabilirliğini artırır. Gelin, dizileri nasıl tanımlayacağımıza ve kullanacağımıza birlikte bakalım.


Diziler: Benzer Verilerin Toplandığı Bir Kutu

Bir dizi, aynı veri tipine sahip birden fazla değerin tek bir isim altında saklandığı bir koleksiyondur. Örneğin, beş farklı sensörden okunan değerleri ayrı ayrı sensor1, sensor2 gibi değişkenlerde tutmak yerine, hepsini int sensorDegerleri[5] adında bir diziye atayabiliriz. Bu, özellikle döngülerle birlikte kullanıldığında kodumuzu inanılmaz derecede kısaltır ve basitleştirir.

Dizilerde, her elemana bir indeks (sıra numarası) atanır. Bu indeksler 0'dan başlar. Yani, 3 elemanlı bir dizinin elemanlarına 0, 1 ve 2 numaralı indekslerle erişiriz.

Dizi Tanımlama Yöntemleri

Bir diziyi tanımlamanın birkaç farklı yolu vardır:

1. Boyutu belirterek ve elemanları daha sonra atayarak:

int sicakliklar[3]; // 3 elemanlı, tamsayı değerler alacak bir dizi tanımladık.

void setup() {
  sicakliklar[0] = 22; // İlk elemana değer atadık
  sicakliklar[1] = 25; // İkinci elemana değer atadık
  sicakliklar[2] = 28; // Üçüncü elemana değer atadık
}

2. Boyutu ve başlangıç değerlerini aynı anda belirterek:

int pinler[4] = {2, 3, 4, 5}; // 4 elemanlı, başlangıç değerleri olan bir dizi.

char mesaj[] = {'M', 'E', 'R', 'H', 'A', 'B', 'A'}; // Boyutu belirtmeden de dizi tanımlanabilir.

Eğer bir diziyi boyutundan daha az elemanla başlatırsak, kalan elemanların değerleri otomatik olarak 0 olur.

int ledDurumlari[5] = {HIGH, LOW}; // İlk iki eleman HIGH ve LOW, geri kalanlar 0 (LOW).

Çok Boyutlu Diziler: Tablolar Halinde Veri Saklama

Diziler sadece tek boyutlu olmak zorunda değildir. İki veya daha fazla boyutlu diziler, verileri bir tablo veya matris şeklinde saklamamıza olanak tanır. İki boyutlu diziler, özellikle ekran veya tuş takımı gibi matris tabanlı donanımları kontrol ederken çok kullanışlıdır.

İki boyutlu bir diziyi tanımlarken, her iki boyut için de eleman sayısını belirtiriz:

int matris[2][2]; // 2 satır, 2 sütundan oluşan bir dizi tanımladık.
matris[0][0] = 1;
matris[0][1] = 2;
matris[1][0] = 3;
matris[1][1] = 4;

Aynı şekilde, başlangıç değerlerini de aynı anda atayabiliriz:

int matris[2][2] = {{1, 2}, {3, 4}};

Diziler ve Döngüler: Ayrılmaz İkili

Dizilerin gerçek gücü, for döngüleriyle birlikte kullanıldığında ortaya çıkar. Dizinin her elemanına tek tek erişmek yerine, bir döngü kullanarak tüm elemanlar üzerinde kolayca işlem yapabiliriz.

int sensorDegerleri[4] = {100, 250, 300, 450};
int toplam = 0;

void setup() {
  Serial.begin(9600);
}

void loop() {
  // Dizinin tüm elemanlarını topla
  for (int i = 0; i < 4; i++) {
    toplam += sensorDegerleri[i];
  }
  
  Serial.print("Toplam sensör değeri: ");
  Serial.println(toplam);
  
  // Sadece bir kez çalışması için döngüden çık
  while(1);
}

Gördüğünüz gibi, diziler ve döngüler birlikte kullanıldığında kodumuzu çok daha kısa, düzenli ve yönetilebilir hale getiriyor. Bu sayede karmaşık projelerde bile kodunuzu kolayca kontrol edebilirsiniz.

Diziler, Arduino projelerinizin veri yönetimini bir üst seviyeye taşıyacak önemli bir konudur. Bu bilgileri kullanarak artık daha organize ve verimli kodlar yazabileceğinize eminim.

Webkolog'u takipte kalın!

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

0 yorum:

Yorum Gönder