Arduino Ders 10.1 Çok Boyutlu Diziler || Matris Diziler

Arduino Ders 10.1: Çok Boyutlu Diziler

Arduino Ders 10.1: Çok Boyutlu Diziler || Matris Diziler

1. Giriş

Çok boyutlu diziler, birden fazla sıra ve sütundan oluşan veri yapılarıdır. Arduino'da çok boyutlu diziler, genellikle matris (2D dizi) olarak kullanılır ve verileri düzenli bir şekilde depolamak için idealdir.

2. Çok Boyutlu Dizilerin Tanımı

Çok boyutlu diziler, aşağıdaki gibi tanımlanır:

veri_tipi dizi_adi[satir][sutun];
  • veri_tipi: Dizinin tutacağı veri türü (örneğin, int, float, char).
  • dizi_adi: Dizinin adı.
  • satir: Dizinin satır sayısı.
  • sutun: Dizinin sütun sayısı.

3. Örnek: 2x3 Bir Matris Tanımlama

Aşağıda, 2 satır ve 3 sütundan oluşan bir matrisin tanımlanması ve kullanımı gösterilmiştir:

Kod Örneği

// 2x3 bir matris tanımlama
int matris[2][3] = {
    {1, 2, 3},
    {4, 5, 6}
};

void setup() {
    Serial.begin(9600); // Seri haberleşmeyi başlat

    // Matris elemanlarını yazdır
    for (int i = 0; i < 2; i++) {
        for (int j = 0; j < 3; j++) {
            Serial.print(matris[i][j]);
            Serial.print(" ");
        }
        Serial.println(); // Satır sonu
    }
}

void loop() {
    // Döngü içinde bir işlem yapılmıyor
}

Kod Açıklaması

  • matris[2][3]: 2 satır ve 3 sütundan oluşan bir tam sayı matrisi.
  • for Döngüsü: Matrisin tüm elemanlarını seri monitöre yazdırır.

4. Örnek: Matris Toplama

İki 2x2 matrisin elemanlarını toplamak ve sonucu bir başka matrise kaydetmek için aşağıdaki kodu kullanabilirsiniz:

Kod Örneği

// İki matris tanımla
int matrisA[2][2] = {
    {1, 2},
    {3, 4}
};
int matrisB[2][2] = {
    {5, 6},
    {7, 8}
};

int matrisToplam[2][2]; // Sonuç matrisi

void setup() {
    Serial.begin(9600); // Seri haberleşmeyi başlat

    // Matrisleri topla
    for (int i = 0; i < 2; i++) {
        for (int j = 0; j < 2; j++) {
            matrisToplam[i][j] = matrisA[i][j] + matrisB[i][j];
        }
    }

    // Toplam matrisi yazdır
    for (int i = 0; i < 2; i++) {
        for (int j = 0; j < 2; j++) {
            Serial.print(matrisToplam[i][j]);
            Serial.print(" ");
        }
        Serial.println(); // Satır sonu
    }
}

void loop() {
    // Döngü içinde bir işlem yapılmıyor
}

Kod Açıklaması

  • matrisA ve matrisB: Toplanacak iki matris.
  • matrisToplam: Toplama işleminin sonucunu tutan matris.
  • İç İçe Döngü: Her bir elemanı toplar ve sonucu yazdırır.

5. Örnek: LED Tablosu Kontrolü

Bir matris kullanarak LED'lerin açık/kapalı durumlarını kontrol edebilirsiniz. Örneğin, 3x3 bir LED matrisi:

Kod Örneği

// LED matris durumu (1: açık, 0: kapalı)
int ledDurum[3][3] = {
    {1, 0, 1},
    {0, 1, 0},
    {1, 0, 1}
};

int ledPin[3][3] = {
    {2, 3, 4},
    {5, 6, 7},
    {8, 9, 10}
};

void setup() {
    // Tüm LED pinlerini çıkış olarak ayarla
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            pinMode(ledPin[i][j], OUTPUT);
        }
    }

    // LED durumlarını uygula
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            digitalWrite(ledPin[i][j], ledDurum[i][j]);
        }
    }
}

void loop() {
    // Döngü içinde bir işlem yapılmıyor
}

Kod Açıklaması

  • ledDurum: Her LED'in açık/kapalı durumunu tutar.
  • ledPin: Her LED'in bağlı olduğu pin numaralarını tutar.
  • setup(): LED durumlarını başlangıçta uygular.

6. Sonuç

Arduino'da çok boyutlu diziler, verileri düzenli bir şekilde saklamak ve manipüle etmek için güçlü bir araçtır. Matrislerle, veri hesaplamaları, LED kontrolü ve daha fazlası gibi birçok işlem yapılabilir. Yukarıdaki örnekler, bu tür dizilerin nasıl tanımlanacağını ve kullanılacağını göstermektedir.

Yorum Gönder

0 Yorumlar